静态构造函数中的static

时间:2013-09-30 19:20:43

标签: c#

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

当我这样做时

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 个答案:

答案 0 :(得分:7)

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

  1. 您无法使用参数定义static构造函数。
  2. 您无法调用static构造函数。在第一次使用类之前,它是由框架为您调用的(但您无法准确说明何时)。
  3. 在MSDN上阅读有关静态构造函数的更多信息:Static Constructors (C# Programming Guide)