如何在C#6中初始化类的属性

Sim*_*yan 3 c# initialization properties c#-6.0

我有一个使用某些服务的课程.我需要在创建类时实例化每个服务.在C#6中,我可以看到两种方法,但我不确定哪种方法是正确的......

protected static SomeServiceType Service => new SomeServiceType();
Run Code Online (Sandbox Code Playgroud)

或者我可以使用autoproperty初始化程序...

protected static SomeServiceType Service { get;} = new SomeServiceType();
Run Code Online (Sandbox Code Playgroud)

每种方法有哪些优点/缺点?非常感谢

Raw*_*ing 8

我相信

  • 每次读取属性时,前者("表达式身体成员")都会调用new SomeServiceType()
  • 后者("Auto-property initializers")在实例化时调用它一次,并在每次读取属性时返回创建的实例.

听起来你想要后者.