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

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

概述说我有: 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的实例变量访问静态成员时,你会想要的结果是什么?您想要一个空引用异常(但为什么,因为不需要实例来获取静态成员)?或者你希望它能工作(在这种情况下你会遇到奇怪的情况,这个实例变量的一些调用工作,但有些没有)?无论哪种方式都有问题.

总结

以上是内存溢出为你收集整理的c# – 为什么不能通过实例名称访问静态成员?全部内容,希望文章能够帮你解决c# – 为什么不能通过实例名称访问静态成员?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1242574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存