静态类中似乎只能建静态方法
我想问的是:
一个非静态类中的静态方法,和一个静态类中的静态方法,包括这两个类他们有什么不一样的地方?
比如存在的时间阿等一些区别的地方
我个人认为
静态类,整个类和他的方法都是贯穿始终,可非静态类呢,如果说他的静态方法一运行就被放入了资源,那它和静态类又有什么区别呢?那它的非静态的方法应该要建立对象来引用吧,除了这个外各都有什么优缺点?
如果我想建个公共类,并写个静态方法,那是用静态类好呢,还是用非静态类好?
我想问的是:
一个非静态类中的静态方法,和一个静态类中的静态方法,包括这两个类他们有什么不一样的地方?
比如存在的时间阿等一些区别的地方
我个人认为
静态类,整个类和他的方法都是贯穿始终,可非静态类呢,如果说他的静态方法一运行就被放入了资源,那它和静态类又有什么区别呢?那它的非静态的方法应该要建立对象来引用吧,除了这个外各都有什么优缺点?
如果我想建个公共类,并写个静态方法,那是用静态类好呢,还是用非静态类好?
还可以做为线程的回调函数来使用.
还有一些设计模式也使用静态函数的特性来处理.
MFC的消息映射,动态创建之类的也是通过静态函数来实现的静态函数只能引用静态数据成员,而不能引用一般非静态数据成员。所以当只需要改变静态数据成员时使用。这种调用的结果不会访问或修改任何对象成员(非static)。所有的非静态类成员函数都隐含了一个this指针,所以可以调用类成员变量,而静态类成员函数
都没有这个this指针.
另: "只有静态函数可以调静态成员变量",此句有误,类的静态成员变量只有一个实例,任何类成员函数都可以调静态成员变量
静态类永远不能被实例化,也没有实例化的概念和于此相关的任何行为,所以一般用来做工具类。
普通类中的静态方法可以作为该类范围内的一个实用小用具来用,它的控制范围更多的与本类的对象有关系。静态类是C#中很棒的一个设计元素,再也不用写private的构造了,很帅气!