static
修饰符表示无法实例化类型或成员无法与实例关联。但是这种限制对实例化有什么好处,在什么用例情况下应该将类型/成员声明为静态?
答案 0 :(得分:4)
但是这个限制对实例化有什么好处,在什么用例情况下应该将类型/成员声明为静态?
对于成员,当您拥有属于该类的状态(或应该在该类的所有实例之间共享)或不依赖于实例级状态的方法时。
对于类型,当你有一包不依赖于实例级状态的方法(例如,System.Math
)时,包括扩展方法。
答案 1 :(得分:0)
类型被声明为static以定义,不能创建此类型的实例(并且只能包含静态数据)。
当非静态类不引用类的内部数据时,方法在静态类中定义。在阅读或使用代码时,这有时很重要。
答案 2 :(得分:0)
有几个好处:
答案 3 :(得分:0)
当您希望编译器禁止实例化该类型的实例时,应将类型声明为静态,并防止添加任何非静态(基于实例的)成员。所有这一切都保证您以后不会无意中添加非静态成员。
非静态类的成员应声明为静态 If和Only If 成员不引用任何基于实例的对象状态,(直接或间接通过另一个非静态)会员)。它们不能引用该类型的任何非静态成员,但非静态成员可以引用它们。
答案 4 :(得分:0)
我遵循以下原则。
声明静态if:
如果出现以下情况,请不要声明静态:
所以主要是增加内聚力减少耦合,否则你可以使用静态实例。