静态构造函数中的static

Muh*_*mar 0 c#

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

当我这样做

public class TestClass
{
    static TestClass(int i)
    {
    }

    TestClass()
        : this(1)   // Error
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

它给了我错误

'TestApp.TestClass'不包含带有1个参数的构造函数

但是当我这样做时,它没有显示任何错误.

public class TestClass
{
    TestClass(int i)
    {
    }

    static TestClass()
        : this(1)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*zek 7

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

  1. 您不能static使用参数定义构造函数.
  2. 你不能调用static构造函数.在第一次使用类之前,它是由框架为您调用的(但您无法准确说明何时).

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