C#中是否有一种语法允许我定义一个私有属性,比如在Typescript中?
示例:Typescript:
constructor (private field1: string) { }
在C#中,我必须这样做:
private readonly string field1;
public MyClass(string field1)
{
this.field1 = field1;
}
我正在为AspNet核心依赖注入寻找语法糖。
答案 0 :(得分:5)
在C#7中没有这个语法糖,你必须编写样板。
听起来像主要构造函数是你正在寻找的东西 - 它们在C#6测试版中但最终被删除了。
http://www.alteridem.net/2014/09/08/c-6-0-primary-constructors/
答案 1 :(得分:1)
Class myClass
{
private string field1 {get; set;}
public Class()
{
}
}
多数民众赞成,如果你初始化这个类,你现在有了一个属性。 如果您只想读取它,只需编写一个get方法。
答案 2 :(得分:1)
如果你想在Angular中使用构造函数中的依赖注入语法糖,遗憾的是还没有...还没有。
在类中声明private
字段:
Class myClass
{
private string field1;
public Class()
{
}
}
如果您希望能够使用构造函数调用初始化此字段,则可以为构造函数提供参数,以便初始化它。
Class myClass
{
private string field1;
public Class(string field1)
{
this.field1 = field1;
}
}
您也可以将其定义为属性而不是简单字段(属性具有getter和/或setter,并且在C#中使用以下语法由隐藏变量内部支持):
Class myClass
{
private string Field1 { get; set; }
public Class(string field1)
{
this.Field1 = field1;
}
}