获取类中成员的"指针"

Tiz*_*izz 0 c# pointers

我有一些类,并希望根据开关更改特定类的特定实例中的布尔值,但似乎无法得到值的"指针",我只是得到一个副本.

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)

Dan*_*ite 5

我会这样做的.

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#中的指针,但强烈建议不要这样做.它们只应在没有其他方式时使用.