c# – 为什么不能通过实例名称访问静态成员?

前端之家收集整理的这篇文章主要介绍了c# – 为什么不能通过实例名称访问静态成员?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
说我有:
class Test
 {
      public static int Hello = 5;
 }

这显然有效:

int j = Test.Hello;

但为什么这不起作用?

Test test = new Test();
 int j = test.Hello;

该实例不能有一个同名的成员,所以我不知道这对编译器来说是多么模糊或不可解析.

任何人都知道为什么会这样?

编辑:
除了语言设计者为了可读性/清晰度/美学/等而选择它之外,还有其他任何技术原因吗?

解决方法

另一个角度:

假设这是可能的.当你通过一个null的实例变量访问静态成员时,你会想要的结果是什么?您想要一个空引用异常(但为什么,因为不需要实例来获取静态成员)?或者你希望它能工作(在这种情况下你会遇到奇怪的情况,这个实例变量的一些调用工作,但有些没有)?无论哪种方式都有问题.

猜你在找的C#相关文章