非静态构造函数中的静态

本文关键字:静态 构造函数 | 更新日期: 2023-09-27 18:33:18

我无法理解这部分代码,请帮忙。

当我这样做时

public class TestClass
{
    static TestClass(int i)
    {
    }
    TestClass()
        : this(1)   // Error
    {
    }
}

它给了我错误,因为

'TestApp.TestClass' 不包含接受 1 个参数的构造函数

但是当我这样做时,它不会显示任何错误。

public class TestClass
{
    TestClass(int i)
    {
    }
    static TestClass()
        : this(1)
    {
    }
}

有人请解释一下这种行为?

非静态构造函数中的静态

您的第一个代码中有两个错误:

  1. 不能使用参数定义static构造函数。
  2. 不能调用构造函数static。在第一次使用类之前,框架会为您调用它(但您无法确切地说出何时)。

阅读有关 MSDN 上的静态构造函数的详细信息:静态构造函数(C# 编程指南)