如果你学过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来,想那么多为什么没用,哈哈。
祝好!
可以访问,但是是用 类名.函数 而不是 对象名.函数
也就是
pc.printf();
如果问题得到解决,请点我回答右边的采纳,谢谢
不是pr.printf()么?