2015-12-01 4 views
3

У меня есть класс, который использует некоторые службы. Мне нужно, чтобы каждая служба создавалась при создании класса. В C# 6 Я вижу 2 способа сделать это, но я не уверен, что было бы правильно ...Как инициализировать свойство класса в C# 6

protected static SomeServiceType Service => new SomeServiceType(); 

в качестве альтернативы я мог бы использовать autoproperty Инициализатора ...

protected static SomeServiceType Service { get;} = new SomeServiceType(); 

Что преимущества/недостатки с каждым подходом? Большого спасибо

+0

Неверный номер. => является синтаксисом лямбда-выражения. – Andrey

+0

@Andry [Новое в C# 6] (https://msdn.microsoft.com/en-gb/magazine/dn802602.aspx) – Rawling

+0

Вы можете попробовать и посмотреть, как это переводится по адресу http: //tryroslyn.azurewebsites. net –

ответ

8

Я считаю

  • прежних ("Expression работоспособных членов") называет new SomeServiceType()каждый раз, когда свойство читается
  • последних ("Auto-свойство инициализаторов") называют его один раз при создании экземпляра и возвращает созданный экземпляр каждый раз, когда свойство считывается.

Похоже, что вы хотите последнего.

Смежные вопросы