C#中静态和非静态的区别
今天下午面试,HR问道:C#中静态类或静态方法和非静态类静态方法有什么区别?
我回答是静态的可以直接调用而非静态的需要实例化。HR说这谁都知道,我问的是本质区别。
我当时就郁闷了,我只有8个月的编程经验,几乎没用到静态类或方法,只知道大概怎么用,
于是只能回答说不知道,后面有问道了几个问题,回答不理想,被PASS掉了。
回家后上网查了下,一个需要实例化,一个直接调用这是公认的没有问题,我把剩下的粘贴
出来供需要的人参考
静态属于类定义, 动态属于对象定义
肯定是先定义类,才能定义对象, 所以静态要先于动态, 而且静态只能有一份, 动态则没有限制.
==============================================
静态运行时被加载一次。
非静态每次运行都被加载
静态生命周期与类相同
===============================================
静态变量和方法属于类,在调用类的时候就创建;
在内存中只有一份,不会随着对象的增加而增加;
动态变量和方法属于对象,会随着对象的增加而增加