为C#自动属性赋予初始值的最佳方法是什么?
如何为C#自动属性赋予初始值?
我要么使用构造函数,要么恢复为旧语法。
class Person {
public Person()
{
Name = "Initial Name";
}
public string Name { get; set; }
}
(带有初始值)
private string name = "Initial Name";public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
有没有更好的办法?
回答:
在C#5和更早版本中,要为自动实现的属性提供一个初始值,您必须在构造函数中进行设置。
从C#6.0开始,您可以内联指定初始值。语法为:
public int X { get; set; } = x; // C# 6 or higher
DefaultValueAttribute
打算由VS设计人员(或任何其他使用者)用来指定默认值,而不是初始值。(即使在设计对象中,初始值也是默认值)。
在编译时DefaultValueAttribute
不会影响生成的IL,也不会读取它来将属性初始化为该值(请参见DefaultValue属性不适用于我的Auto
Property)。
属性的例子影响IL是ThreadStaticAttribute
,CallerMemberNameAttribute
…
以上是 为C#自动属性赋予初始值的最佳方法是什么? 的全部内容, 来源链接: utcz.com/qa/426905.html