我的情况:
public class A
{
public string _prop { get; }
public A(string prop)
{
_prop = prop; // allowed
}
}
另一个案例:
public class A
{
public string _prop => string.Empty;
public A(string prop)
{
// Property or indexer 'A._prop' cannot be assigned to -- it is read only
_prop = prop;
}
}
两种语法:
public string _prop { get; }
和
public string _prop => string.Empty;
创建只读属性。但是为什么我不能在第二种情况下分配呢?
答案 0 :(得分:16)
public string _prop => string.Empty;
等于:
public string _prop { get { return string.Empty; } }
因此,string.Empty
就像方法get
中的方法代码一样。
public string _prop { get; }
等于:
private readonly string get_prop;
public string _prop { get { return get_prop;} }
因此,您可以为构造函数赋值get_prop
;
the article中的更多信息。