class Test { public static int Hello = 5; }
这显然有效:
int j = Test.Hello;
但为什么这不起作用?
Test test = new test(); int j = test.Hello;
该实例不能有一个同名的成员,所以我不知道这对编译器来说是多么模糊或不可解析.
任何人都知道为什么会这样?
编辑:
除了语言设计者为了可读性/清晰度/美学/等而选择它之外,还有其他任何技术原因吗?
假设这是可能的.当你通过一个null的实例变量访问静态成员时,你会想要的结果是什么?您想要一个空引用异常(但为什么,因为不需要实例来获取静态成员)?或者你希望它能工作(在这种情况下你会遇到奇怪的情况,这个实例变量的一些调用工作,但有些没有)?无论哪种方式都有问题.
总结以上是内存溢出为你收集整理的c# – 为什么不能通过实例名称访问静态成员?全部内容,希望文章能够帮你解决c# – 为什么不能通过实例名称访问静态成员?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)