c# - 公共(public)构造函数和静态构造函数

标签 c# static-constructor

我正在阅读使用两个构造函数的 C# 代码。一个是静态的,另一个是公共(public)的。这两个构造函数有什么区别?为什么我们必须使用静态构造函数?

最佳答案

staticpublic 是正交的概念(即它们彼此没有任何关系)。

public 只是意味着该类的用户可以调用该构造函数(相对于 private)。

static 表示方法(在本例中为构造函数)不属于类的实例,而是属于“类本身”。特别是,当类第一次被使用时,静态构造函数被一次自动调用。

此外,不能将静态构造函数设为publicprivate,因为它不能手动调用;它仅由 .NET 运行时本身调用——因此将其标记为 public 没有任何意义。

关于c# - 公共(public)构造函数和静态构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995448/

相关文章:

c# - 使用 new 的静态变量初始化会产生代码风险

c# - 为什么 VB 编译器不能捕获对接口(interface)类型的无效隐式转换,而 C# 可以?

c# - 使用C#Web浏览器观看全屏视频

c# - 如何在 C# 中访问指向结构数据的编码指针?

C# 静态构造函数在填充 ConcurrentDictionary 时初始化线程安全

c# - 为什么不调用我的基类中的静态构造函数?

c# - 设计问题 : static class only initializes once, 破坏了单元测试

c# - 我能有一本按日期排序的字典吗

c# - 如何指定从 EntityFramework 检索到的 DateTime 对象应该是 DateTimeKind.UTC

c# - 为什么进入静态 .ctors 的顺序与继承类中的实例 .ctors 不同?