为什么我可以在静态类方法中访问私有非静态类属性?

时间:2017-04-21 13:53:36

标签: c# visibility

我刚刚注意到以下代码编译没有错误:

public class Foo
{

    private string identifier;

    public Foo() { }

    private static void Bar(Foo foo)
    {
        Console.WriteLine($"{foo.identifier}");
    }

}

由于Bar是静态的,不应该抛出identifier不可见的异常吗?

1 个答案:

答案 0 :(得分:4)

标识符是Foo ...

的成员

foo是静态方法Foo.Bar

的参数

foo是指一个实例

该实例由其自己的类的静态方法访问...

工作正常