什么时候用静态方法,有什么好处?
如题,
对于静态方法的使用不是很了解,
请大家谈一下自己的体会.
最好是有应用场景,有对比的说一下.
(本人有结贴的好习惯)
------解决方案--------------------当类不会有多个对象而是更像是一个公用类的时候,或当方法或属性是“公用”信息的时候声明成静态的比较好。
而当类、方法或属性可能比较个性的时候则不声明成静态的。
比如从数据库获取数据的方法可以声明成静态的,而像画图中的圆,线,矩形则可以定义成非静态的。
------解决方案--------------------从内存占用上来说,静态的虽不需要实例化,但一直占用内存,所以访问速度较快,所以静态类不能太大太占资源。
而非静态类只有被实例化后才占内存,需要“调入”内存后才能执行。相对较慢。
------解决方案--------------------
还是我来解释一下吧,,楼主仔细的琢磨一下.
静态类在定义的时候是直接从System.Object类派生的,因此调用类的接口将没有任何意义.
又由于将类定义成static后会在IL中同时标记为abstract和sealed的,,因此不能实例化.
在托管堆中不会分配连续的物理内存地址,因此也不会对其进行垃圾回收.
但它又不同于值类型(struct类型),因为他还是从Object类派生的,,因此可以给他定义相应的静态成员(字段,方法,属性和
事件).
可以这么说静态类是C#中一个比较特殊的类型.在使用的时候尽量将程序使用频繁的方法写进去.从而提高程序的性能.
因为内存的读取速度将是外存无法比拟的.