我有一些类,并希望根据开关更改特定类的特定实例中的布尔值,但似乎无法得到值的"指针",我只是得到一个副本.
Class aClass;
Class bClass;
Class cClass;
public class Class
{
public bool b = true;
...
}
void Method(int i)
{
bool localBool;
switch(i)
case 1:
localBool = aClass.b;
break;
case 2:
localBool = bClass.b;
break;
case 3:
localBool = cClass.b;
break;
localBool = false; // This changes the localBool, but not Class.b
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果我在课堂上有3个布尔而不是3个课程怎么办?
Class aClass;
public class Class
{
public bool a = true;
public bool b = true;
public bool c = true;
...
}
void Method(int i)
{
bool localBool;
switch(i)
case 1:
localBool = aClass.a;
break;
case 2:
localBool = aClass.b;
break;
case 3:
localBool = aClass.c;
break;
localBool = false; // This changes the localBool, but not aClass.Bool
}
Run Code Online (Sandbox Code Playgroud)
我会这样做的.
void Method(int i)
{
Class local;
switch(i)
case 1:
local = aClass;
break;
case 2:
local = bClass;
break;
case 3:
local = cClass;
break;
local.b = false;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,支持C#中的指针,但强烈建议不要这样做.它们只应在没有其他方式时使用.