static 实现什么特殊的功能,静态方法 调用不需要实例化,实例化调用,这两种用法分别应用于何种情况??
是不是静态方法,属性应用与经常调用的方法属性,这样不必每次调用都创建占用内存。
静态类型直接存放在栈上,无需实例化直接调用。
我认为静态static就是对内存的管理,让代码功能更加面向对象。
static属性和非static属性的区别:
static不需要实例化直接 类.属性;
非static需要创建对象new,分配了一部分内存在堆上。CLR之后还要回收。
给你四个名称你自己可以理解下static的意义:
静态构造函数
静态属性
构造函数
属性
你可以看看这四个共存时运行顺序,很多面试题都有。总结一句话:static就是直接调用,节省内存,提高代码性能。
一般来说,我自己的理解是static对于多个程序需要频繁调用的类方法可以简化调用,如果一个类新建有N个对象,这N 个对象只有同一个静态属性与方法,就是这些对象的方法和属性只有“1个”,如最经典的就是SqlHelper.cs这个著名的访问数据库用的程序。我自己也是菜鸟,也理解不太深。希望能帮到你。
静态方法(属性)属于类,而不属于对象。
用了static后,如果它是public,那么全系统都可以调用它,而不用声明多个实例,这样可以减少占用资源.并且提高访问速度,因为它根本不用new.再一个就是调用很方便,直接 . 就出来了.我的感觉就是这样.
静态的话会在内存中长期存在,不用每次使用的时候都进行实例化分内存,相对来说常用的东西,或者说程序一直需要用到的方法,属性等等的建议用作静态的。
非静态的反之。
static抛开性能问题不谈,我想没必要为了那点内存和速度来选择static。
static应用更多的场景应该是常量,工厂方法等这一类,例如
string.Empty、int.Max、int.Min这些是常量的代表
工厂方法设计模式里面有讲。
还有一些常用函数:string.IsNullOrEmpty
把三楼和四楼的结合在一起就是正确答案了
1.方便调用,类.属性/方法。
2.将其运用于常用的属性或方法,提升其访问速度并节省额外内存。