为什么我可以在C#中执行此操作?(带有()的公共类

Jem*_*687 2 c#

在C#中,为什么我能够使用以下代码编译和运行程序

public class HammingTFTP()
{
     //class variables here
     public HammingTFTP(string mode, string host, string fileName)
           :this()
     {
        //code here
     }
}
Run Code Online (Sandbox Code Playgroud)

我在mac上编码并运行mono 3.6.0.我明白在类声明之后应该没有(),我应该删除:this().只是想知道为什么这个编译并运行在第一位.这可能是给定版本的单声道的错误吗?

dca*_*tro 8

这不能用.NET编译器编译,但它与Roslyn编译器一起编译.演示:https://dotnetfiddle.net/HkngI3

这是一个名为"Primary Constructors"的C#6.0功能.请参阅新增和改进的C#6.0

它允许您在声明旁边声明类的主要构造函数,例如:

public class MyClass(string name)
{
    public string Name {get; } = name;  
}
Run Code Online (Sandbox Code Playgroud)