加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:35:16 所属栏目:百科 来源:网络整理
导读:说我有: class Test { public static int Hello = 5; } 这显然有效: int j = Test.Hello; 但为什么这不起作用? Test test = new Test(); int j = test.Hello; 该实例不能有一个同名的成员,所以我不知道这对编译器来说是多么模糊或不可解析. 任何人都知道
说我有:
class Test
 {
      public static int Hello = 5;
 }

这显然有效:

int j = Test.Hello;

但为什么这不起作用?

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

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

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

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

解决方法

另一个角度:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读