为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是ThreadStaticAttributeCallerMemberNameAttribute

以上是 为C#自动属性赋予初始值的最佳方法是什么? 的全部内容, 来源链接: utcz.com/qa/426905.html

回到顶部