非常不小心,我发现自己在代码中一直使用一个空结构的静态方法,而不是我以为我正在使用的静态类的静态方法!
例如
public struct Foo { public static void Bar(Param param) { ... } }
在这一点上它并没有被真正用作结构体,因为它根本没有属性!
这是否与使用静态方法(静态或其他方式)非常不同?有什么理由选择一个呢? (我的直觉告诉我,使用静态结构的方法至少不那么直观)
重要的是要注意,如果类型的唯一功能是包含静态成员,则应该使用静态类.使用结构体,存在一个隐式且不可更改的public,no-argument构造函数.如果类型不具有任何实例方法,则应删除创建实例的能力.声明类static与声明它是abstract密封相同,因此开发人员将无法无意创建没有目的的实例.