C#如何设置自动属性的默认值?

Yip*_*Yay 5 c# interface default-value

我有一些实现该接口的接口和类:

public interface IWhatever {
   bool Value { get; set;}
}

public class Whatever : IWhatever {
   public bool Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,是否C#允许在不使用某些支持字段的Value情况下拥有一些默认值

Bin*_*ier 13

更新

从C#6(VS2015)开始,这种语法完全有效

public bool Value { get; set; } = true;
Run Code Online (Sandbox Code Playgroud)

就像为只读属性设置一个值一样

public bool Value { get; } = true;
Run Code Online (Sandbox Code Playgroud)

旧的,前C#6答案

Spoiler警告那些令人兴奋的性质:以下代码不起作用

你问,"我可以这样做吗?"

public bool Value { get; set; } = true;
Run Code Online (Sandbox Code Playgroud)

不,你不能.您需要在类的构造函数中设置默认值

  • 当我第一次看到该代码示例时,我想"没办法!你能做到吗?!" (3认同)
  • 我投票支持这个非常有效的功能! (3认同)