Каков наилучший способ инициализации публичного свойства в C #? - PullRequest
0 голосов
/ 15 ноября 2010

Мне нужно дать начальным значениям моих свойств, и я хотел бы знать, есть ли более простой способ, чем использование конструктора.

Ответы [ 5 ]

2 голосов
/ 15 ноября 2010

Мне нравится думать об этом немного по-другому.Если значение является обязательным для создания экземпляра, оно должно быть параметром для конструктора.

Однако, если значение равно необязательно , тогда его установка через свойство подходит.

2 голосов
/ 15 ноября 2010

Если вы просто хотите инициализировать значения свойств, тогда достаточно просто конструкторов. Я не понимаю, почему вы думаете, что они не простые.

Однако вы можете сделать это, если хотите, вы можете инициализироватьпеременная, как это:

int _myProperty = 5;
public int MyProperty
{
  get{ return _myProperty ;}

 set { _myProperty=value; }
}
2 голосов
/ 15 ноября 2010

Используете ли вы автоматически реализованные свойства?Свойства типа значения будут инициализированы до значений по умолчанию.Типы ссылок будут инициализированы нулем.

Если вы хотите, чтобы они инициализировали их каким-то другим, я думаю, что лучший вариант - установить их в конструкторе.

Если вы не используете автоматически реализованные свойства, вы можете инициализировать их там, где они есть.объявляется.

Также будет полезно иметь в виду порядок , в котором поля объектов и конструкторы инициализируются.

2 голосов
/ 15 ноября 2010

Если вы используете автоматические свойства, конструктор - самый простой способ.Если это не так, тогда ваша переменная-член может определить значение по умолчанию.

private string _someString = "Hello.";

Но вам придется самостоятельно определить метод получения и установки.

public string SomeString
{
    get { return _someString; }
    set { _someString = value; }
}

Что бы не былоэто будет проще, чем просто определить значение по умолчанию в конструкторе.

1 голос
/ 15 ноября 2010

Хорошо Конструкторы лучше всего подходят для этого.Как бы то ни было, вы тоже можете вызывать методы.

Проверьте также и следующую ссылку Инициализация авто свойств C #

...