.NET中是否有一个默认构造函数,就像在C#中一样?

Ess*_*ial 0 .net constructor jscript.net unity-game-engine unityscript

我正在学习构造函数,我仍然是编程中的新手,所以如果我错误地使用任何术语,请提前道歉.我相信我所读到的是C#中有一个方便的默认构造函数,它允许你像这样在对象初始化中声明属性......

Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Run Code Online (Sandbox Code Playgroud)

但是我在Unity3D引擎中使用UnityScript,这种语言虽然通常被称为Javascript,但更类似于JScript.NET.初始化对象时是否有可用的C#默认构造函数?

目前我要做的是初始化对象,然后一次设置一个属性.或者我可以创建一个我可以使用的构造函数,但我只是好奇,如果在C#中已经有一个默认的那个?

das*_*ght 5

除非Cat是a struct,否则它可能没有默认构造函数:它全部取决于类.如果类的所有构造函数都接受参数(即没有默认构造函数)的构造

new MyClass { ... }
Run Code Online (Sandbox Code Playgroud)

会是非法的.

请注意,即使对于缺少默认构造函数的类,您也可以使用相同的初始化构造:您只需要调用非默认构造函数,如下所示:

class Cat {
    public string Name {get;set;}
    public string Age {get;set;}
    public Cat(string name) {Name = name;}
}

Cat myCat = new Cat("Fluffy") {Age = 10 };
Run Code Online (Sandbox Code Playgroud)

  • UnityScript目前还没有很好的文档记录.我只是看到有人在一行中初始化一个对象时设置属性,它看起来比我一般设置每个属性一行一般的方式更整洁.我想知道在UnityScript中它是否可行,但似乎它可能只是C#的独特之处. (2认同)
  • @Essential Unityscript是一种不同的语言,其自己的语法与C#不同.我相信Unityscript设计人员可以添加对这种语法的支持,但不能指望它会自动提供. (2认同)