我最近发现 C# 中的结构可以有方法。
非常意外地,我发现自己一直在我的代码中使用空结构的静态方法,而不是我认为我正在使用的静态类的静态方法!
例如
public struct Foo
{
public static void Bar(Param param)
{
...
}
}
此时它并没有真正用作结构,因为它根本没有任何属性!
这与使用类的静态方法(静态或其他)有很大不同吗?有什么理由比另一个更喜欢一个吗? (我的直觉告诉我,使用静态结构方法至少不那么直观)
最佳答案
不,静态成员属于类型,而不属于类型的实例。声明静态类成员和静态结构成员之间没有区别(无论是在性能还是语义方面)。
重要的是要注意,如果类型的唯一功能是包含静态成员,则应改用静态类。对于结构,有一个隐式且不可更改的公共(public)无参数构造函数。如果该类型没有任何实例方法,则应删除创建实例的能力。声明一个类static
与声明它是abstract sealed
是一样的,因此开发人员将无法意外地创建没有目的的实例。
关于c# - 静态结构方法和静态类方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372194/