有没有办法写这个,所以我不必明确声明字段_D
?c#类属性声明
- 如何在类实现时避开
= new List<T>()
?
我有什么:
class c {
private List<T> _D = new List<T>();
public List<T> D { get { return _D; } set { _D = value; } }
}
我想要什么:
class c {
public List<T> D { get; set; }
}
那岂不是更好地声明构造来分配财产List<T>
?如在:
class c {
c() { D = new List<t>(); }
public List<t> D { get; set; }
}
当实现属性和分配初始值时,今天的最佳实践是什么?
这三者在技术上都是正确的。我在我接管的代码中找到了第一个。我无法找到声明所有属性后台字段的原始代码的任何用途。我认为声明支持字段并不是自c#v3以来的最佳实践,除非实际上要在类的方法中的某处使用专用字段,这在此不会发生。
您可以将初始List<>
分配给属性,如'在类中某处使用属性'。 或者你可以把它看作“毫无意义,而不是像我的第三个例子”。
这些日子通常被认为是最佳实践吗?
你的问题令我困惑。你想要的是完全正确的,并在构造函数中声明初始值。那么你究竟在问什么**? –
'public List D {get;组; } =新列表();'? –
crashmstr
这三个都是技术上正确的。我在我接管的代码中找到了第一个。我没有找到声明所有属性的原始背后的任何目的。我认为自c#v3以来,实际上声明的属性已经脱离了最佳实践,除非实际上要在类的方法中使用私有属性。您可以将初始列表分配给属性,如'在类中某处使用属性'。或者你可以把它看作毫无意义,而不是像我的第三个例子那样。这些日子通常被认为是最佳做法? – user5903880