我在很多情况下用来编写像
这样的属性public string Data {get; private set; }
通常我在构造函数中初始化它们 如何为Data提供一些值,而不是使用构造函数
答案 0 :(得分:7)
使用支持字段代替自动实现的属性,使用相同的值初始化该字段,然后通过以下属性公开它:
private string _Data = "Some Value";
public string Data
{
get { return _Data; }
private set { _Data = value; } //or remove it
}
答案 1 :(得分:3)
您可以使用支持变量
private string _data = "foo";
public string Data {get {return _data;} private set {_data = value;}}
或者在C#6中你可以像这样写
public string Data {get; private set; } = "foo";
答案 2 :(得分:1)
没有自动属性。如果您有支持字段,则可以对其进行初始化:
private string _Data = "some value";
public string Data {get {return _Data;} private set {_Data = value;} }
答案 3 :(得分:0)
C#9.0将针对此特定问题提供新的init
访问器:
public class DataClass
{
public string Data {get; init; }
}
现在,您可以为DataClass
使用对象初始化程序了,而不是使用构造函数:
var d = new DataClass { Data = "newValue" };
更多详细信息here。