在C#中使用带有类名的"this"

Jen*_*nix 2 c# this

[编辑]我想问的只是放一个类名this,所以它不是引用一个外部类成员.对不起我的不恰当的例子!

[编辑2]有人报告这是重复但不!正如我之前所说,我只是想知道是否有可能像Java一样引用MyClass.thisthis互换.这根本不是一个实际问题,只是为了学习C#语言本身.我不介意删除这个,如果人们真的认为它是重复的,所以让我知道.

在Java中,您可以使用this类名这样的类:

class OuterClass {
    int outerMember = 1;

    class InnerClass {
        int innerMember = 2;

        public void printOuterMember() {
            System.out.println(OuterClass.this.outerMember);
            System.out.println(outerMember);
        }

        public void printInnerMember() {
            System.out.println(InnerClass.this.innerMember);
            System.out.println(this.innerMember);
            System.out.println(innerMember);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有时候不需要课程名称,但有时候会有所帮助.

所以我在C#中尝试了同样的事情,但似乎这是不可能的.我对吗?

Tit*_*mir 7

C#不支持这一点,在Java中,嵌套类捕获父对象引用.C#嵌套类更像是Java中的静态嵌套类.如果要访问父类,则需要在嵌套类构造函数中传递对它的引用.

如果嵌套类具有对它的引用,则它们可以访问父类的私有字段,因此您可以获得类似的结果,只是对父类实例的访问不像Java中那样是自动的.所以这段代码有效

class Owner
{
    private int field;
    class Nested
    {
        public Nested(Owner owner) { this.owner = owner; }
        Owner owner;
        public int D()
        {
            return owner.field;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)