我知道静态构造函数和私有构造函数的区别以及何时使用它们。但是,什么情况下应该将静态构造函数设置为私有,并且这样做的优点是什么?
我知道静态构造函数和私有构造函数的区别以及何时使用它们。但是,什么情况下应该将静态构造函数设置为私有,并且这样做的优点是什么?
public
或private
到静态构造函数将无法通过编译。private
构造函数始终是实例私有构造函数,这是一种不同的东西,通常用于创建单例,以防止用户代码通过显式实例化类来创建对象。静态构造函数应该始终是私有的。
为什么?
通常情况下,静态构造函数在创建该类的第一个实例之前就被框架调用。这将创建一个可供使用的类型的单个实例。
但是,如果构造函数不是私有的,则意味着其他对象也可以创建该实例。这可能会导致意外行为。
因此,静态构造函数应该始终是私有的。
private
关键字在 C# 中实际上并没有什么作用。默认情况下,除了无法使用 private
的非嵌套类型之外,其他所有内容都已经是 private
了,因为它们可以是 internal
。
现在我从不使用 private
关键字,它只是噪音。
注意:这仅适用于 C#。在 Visual Basic 中,默认可见性不合理,您需要在适当的地方明确使用 Private
。