2016-08-12 5 views
1

Когда я использую следующее:Как инициализировать объект с помощью частных сеттеров?

static public string myString { get; private set; } 

Как я могу установить значение в то же время? Проблема в том, что мой класс статичен, поэтому прямо в его объявлении мне нужно убедиться, что оно имеет значение.

Обычно я использую его с нестационарным классом, поэтому устанавливаю значение в конструкторах классов.

+1

Вы можете установить его в своем статическом конструкторе ... –

ответ

5

Это справедливо только в C# 6.0. C# 6.0 добавляет следующий синтаксис:

static public string myString { get; private set; } = "Hello"; 

Если вы не планируете устанавливать myString через некоторое время в вашей программе, рассмотреть вопрос о внесении свойство только для чтения (это еще одна новая функция C# 6.0):

static public string myString { get; } = "Hello"; 
+0

большое спасибо! Я понимаю, что не могу этого сделать в своей версии, поэтому я использую Sergey.quixoticaxis.Ivanov ответ. Твой тоже помогает. Если бы я мог пометить их как ответ. –

+1

@MaximeJoyal не беспокойтесь. Ответы точно такие же. C# 6 добавляет ярлык синтаксиса для инициализации ваших переменных внутри статического конструктора. –

4

Использовать статический конструктор (MSDN) для инициализации ваших свойств.

2

Другой вариант:

static public string myString { get; private set; } = "default value"; 
+0

Хотя правильно, но возможно в C# 6. Вероятно, вы должны были упомянуть то же самое в ответ. – Rahul

+0

@Rahul: Да, я знаю. Я не помнил, какая именно версия была, и dasblinkenlight добавил его более полный ответ в среднем, поэтому я не стал проверять. Я просто поддержал его ответ вместо этого :) – sstan

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