我知道静态构造函数和私有构造函数之间的区别以及何时使用它们。但是,什么时候应该将静态构造函数设置为私有,这样做有什么好处?
答案 0 :(得分:2)
C#中的静态构造函数不允许访问修饰符,它们(在某种程度上)总是公共的,这意味着框架总是可以访问它们以执行特定于类型的初始化。将public
或private
添加到静态构造函数将无法编译。
private
构造函数始终是一个实例私有构造函数,这是一个不同的东西,在创建单例时最常用,以防止通过用户代码显式实例化类。
答案 1 :(得分:1)
静态构造函数应该始终是私有的。
<强>为什么?
强>
通常,即使在创建该类的第一个实例之前,框架也会调用静态构造函数。这将创建一个可供使用的单一类型的实例。
但是,如果构造函数不是私有的,则意味着其他对象也可以创建实例。这可能会导致意外行为。
因此,静态构造函数应该始终是私有的。
答案 2 :(得分:0)
private
关键字实际上并没有在C#中执行任何操作。默认情况下,所有内容都已private
,但非嵌套类型除外internal
,因为它们不能是private
。
这些天我从不使用private
关键字,只是噪音。
注意:这仅适用于C#。在Visual Basic中,默认的可见性不合理,您需要在适当的位置明确使用Private
。