是否可以编写此属性:
string Error { get; }
in expression bodied syntax(=>
),
例如:
string Title
{
get
{
return title;
}
}
变为:
string Title => title;
答案 0 :(得分:12)
不,因为:
string Error { get; }
...是一个自动实现的属性。编译器在后台为您生成一个字段,但您无法在代码中引用该字段。如果您需要使用支持字段,则需要自己声明:
private readonly string error;
string Error => error;
这基本上就是编译器为你生成的 - 所以如果你想要它,那就自己写吧。虽然这很有用,但是,IMO。
如果您已经拥有该字段,您可以像上面那样编写属性,也可以将字段转换为属性,因此请使用您所在的属性以前是在使用该领域。
(如果你想要一个只读的属性,但是有一个可变字段支持的属性更可行 - 如果你想要一个真正的只读属性,它就不能自动实现。它可能是一个公共可读和私人可写的自动实现的属性。)
答案 1 :(得分:0)
是的,你可以在C# 6.0。但是您仍然需要自己声明支持字段:
string error;
string Error => error;