4条回答 默认 最新
- SeaTalks 2016-11-04 17:52关注
如果你学过Java你可以通过实例去访问静态成员,但是很可能会出现下例的情况
图中可以看到,a在调用Hello()与World()方法时,分别执行的是class A 与 class B中所定义的。这很容易让人犯错。
再比如说MyThread mythread = new MyThread(); mythread.start(); mythread.sleep(1000);
上面的程序中很可能会让人认为是mythread会sleep 1s,但是sleep在Thread中是static的,所以上面的那句等价于Thread.sleep(1000),
这样的话我们很容易就知道其实是现在正在运行的这个线程会被暂停1s。所以说,用对象去访问static成员很多时候容易让人出错。于是C#语言中就规定了,如果你要想访问类的静态成员,那么你需要把类型指定明确,并且不允许用类的实例去访问类的静态成员。
说白了就是,C#就是这么定义的,我们想用它就必须按着它定的rules来,想那么多为什么没用,哈哈。
祝好!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿