我在面试中被问到上述问题。请您解释一下它们之间的区别(性能-内存-使用情况-何时使用哪个?)。
谢谢, Erkan
谢谢, Erkan
声明一个静态类表明你希望该类是一个静态功能的集合,添加实例成员的人将会得到编译错误。
非静态类具有静态成员通常意味着该类被设计用于在某个时刻实例化。这些类的静态方法通常有以下两个作用:
此外,如已经提到的,扩展方法只能在静态类上声明。
我假设你被要求解释它们的区别?
静态类上的静态方法可以用于定义扩展方法。而非静态类上的静态方法则不能。
就性能和内存使用而言,两者没有区别。静态类意味着你知道没有实例,但在1.1版本中,拥有一个私有构造函数就足够了。如果没有实例根本没有意义,那就使用静态类吧!(例如工具类等)
当您提供实用函数时,所有方法都是静态的,我建议您在静态类中使用静态方法。
当您想提供仅处理实例的实用方法时,我建议您在非静态类中使用静态方法。例如:
var myClass = MyClass.Create();
var myClass = MyClass.Parse("serialized.MyClass");