Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C初始化对象中添加或添加要列表的范围_C#_.net_Initialization - Fatal编程技术网

C# 在C初始化对象中添加或添加要列表的范围

C# 在C初始化对象中添加或添加要列表的范围,c#,.net,initialization,C#,.net,Initialization,如中所述,我有一个只读列表的对象,如下所示: public class MyClass { public int id { get; set; } public List<string> stringList { get; } = new List<string>; } 您可以将不太明显的语法用于: 但在C 9发布之前,处理只读属性的通常方法是在构造函数中传递初始化值。您可以使用不太明显的语法: Bur在C 9发布之前,处理只读属性的通常方法是在构造函数中传递初

如中所述,我有一个只读列表的对象,如下所示:

public class MyClass {
  public int id { get; set; }
  public List<string> stringList { get; } = new List<string>;
}

您可以将不太明显的语法用于:


但在C 9发布之前,处理只读属性的通常方法是在构造函数中传递初始化值。

您可以使用不太明显的语法:

Bur在C 9发布之前,处理只读属性的通常方法是在构造函数中传递初始化值。

您可以在构造函数中将stringList作为参数传递,并将属性分配给参数:

public class MyClass {
    public int id { get; set; }
    public List<string> stringList { get; } = new List<string>();

    public MyClass(List<string> stringList) {
        this.stringList = stringList;
    }
}
您可以将stringList作为参数传递到构造函数中,并将属性指定给参数:

public class MyClass {
    public int id { get; set; }
    public List<string> stringList { get; } = new List<string>();

    public MyClass(List<string> stringList) {
        this.stringList = stringList;
    }
}

您可以将数据传递给类构造函数并将其添加到只读列表中。您可以将数据传递给类构造函数并将其添加到只读列表中。由于stringList是只读的,因此此操作不起作用。您必须将项目添加到现有列表中:this.stringList.AddRangestringList@Ben Yes会的,因为您可以从构造函数初始化只读属性。真正的问题是新列表后缺少此列表将不起作用,因为stringList是只读的。您必须将项目添加到现有列表中:this.stringList.AddRangestringList@Ben是的,因为您可以从构造函数中初始化只读属性。真正的问题是缺少“新建后”列表
public class MyClass {
    public int id { get; set; }
    public List<string> stringList { get; } = new List<string>();

    public MyClass(List<string> stringList) {
        this.stringList = stringList;
    }
}