gpt4 book ai didi

c# - 实例化 List<> 类型的属性

转载 作者:太空狗 更新时间:2023-10-29 18:06:58 24 4
gpt4 key购买 nike

我在我的类中创建了一个 List 类型的属性

public List<string> CategoryRef { get; set; }

现在,当我想向列表中添加一个字符串时,我会尝试

Product p=new Product();
p.CategoryRef.Add("Nick");

编译器对我大喊大叫说对象没有设置为对象的实例。如何实例化属性?

最佳答案

在构造函数中你需要说

this.CategoryRef = new List<string>();

一切

public List<string> CategoryRef { get; set; }

是声明类型为 List<string> 的自动属性名为 CategoryRef .隐含在这个自动属性后面的是一个支持字段,但该支持字段接收 List<string> 类型对象的默认值。 .因此,默认情况下,支持字段为 null这就是为什么你必须在构造函数中设置它(或其他地方但在你第一次使用它之前)。

最后,您可能不应该公开暴露 setter。至少,最好说

public List<string> CategoryRef { get; private set; }

您真的希望您类(class)的客户能够将新列表分配给CategoryRef吗? ?可能不是。

在这种情况下,我实际上更喜欢手动属性,这样我就可以将支持字段设置为只读。

private readonly List<string> categoryRef = new List<string>();
public List<string> CategoryRef {
get {
return this.categoryRef;
}
}

关于c# - 实例化 List<> 类型的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com