Class 从类实例访问静态成员变量

Class 从类实例访问静态成员变量,class,c#-4.0,member,static-members,Class,C# 4.0,Member,Static Members,鉴于以下情况 class Foo { public static int Bar { get; set; } } public static void Main(string[] args) { var foo = new foo(); //Erroneous member access here var value = foo.Bar; //Correct member access here var value = Foo.Bar

鉴于以下情况

class Foo
{
    public static int Bar { get; set; }
}

public static void Main(string[] args)
{    
    var foo = new foo();

    //Erroneous member access here
    var value = foo.Bar;

    //Correct member access here
    var value = Foo.Bar;
}

问:为什么不能通过该类的实例访问静态变量?毕竟,对象本身可以在其自己的过程调用中通过访问静态成员变量。

自从您声明Bar属性为静态之后,Bar属性只有一个实现。使用“foo.Bar”没有什么意义,属性值根本不依赖于“foo”的值。因此,编译器会调整您的鼻子,认为您正在犯一个常见的面向对象编程错误。你是。值得注意的是,VB.NET允许使用这种语法,也许你对这种语言更熟悉。@HansPassant-你的评论没有太大的相关性,因为它没有说明为什么语言会将其限制到这样的程度。也不要告诉我哪种语言更适合我。我没有说明我对语法的偏好