我最近发现C#中的结构可以有方法。静态结构方法和静态类方法有什么区别?
不小心,我发现自己一直在我的代码中使用空结构的静态方法,而不是我认为正在处理的静态类的静态方法!
例如
public struct Foo
{
public static void Bar(Param param)
{
...
}
}
它并不真正被用作结构在这一点上,因为它没有属性可言!
这与使用类的静态方法(静态或其他方式)有很大不同吗?是否有任何理由相互优先? (我的直觉告诉我,使用静态结构的方法是,至少,不太直观)
声明一个'static'类具有额外的好处(通过'abstract sealed'),允许编译器在变量声明或转换中将任何类型的用法标记为错误。 –
@mikez同样,以及将任何实例成员声明标记为错误。 – cdhowie
@mikez我认为一个更重要的区别是'abstract sealed class'简直是无效的C#。 – svick