关于c#类赋值的问题?

**AA.cs:**
namespace FirstPerson
{

    [Serializable]
    public class AA
    {
         public bool v = true;
         public void look()
         {
             debug.log("AA:"+v.tostring());
         }
    }
}

**BB.cs:**
FirstPerson.AA aa=new FirstPerson.AA();
debug.log("BB:"+aa.v.tostring());
aa.v=false;
debug.log("BB:"+aa.v.tostring());


AA.cs和BB.cs同时运行,其中,AA.cs中的look函数每秒执行一次,BB.cs是按回车执行一次,运行结果是:
AA:true
AA:true
AA:true
BB:true 回车,获取旧值
BB:false 然后获取新值
AA:true
AA:true
AA:true
AA:true
AA:true
...

但是,AA.cs中的v值显然没有赋值成功,为什么?

阅读 2.3k
2 个回答

看起来没错,就应该输出AA:true,没任何地方改变了AA.cs中创建的AA类实例的v的值,这个值只在bb.cs中修改。

新手上路,请多包涵

你可以使用静态关键字 Static.
我猜想你是想使 AA.V 的值唯一,静态变量会在创建句柄的时候就申请内存并且不用实例化直接用类名。
或者使用静态构造函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进