C# Автоматические Свойства — установка значений по умолчанию

Каков самый легкий/прямой способ установить значение по умолчанию для общественной собственности C#?

//как я устанавливаю значение по умолчанию для этого?

public string MyProperty { get; set; }

Не предлагайте, чтобы я использовал частную собственность и реализовал получить/установить общественные собственности. Попытка сохранить это кратким, и не хочет входить в аргумент о том, почему это настолько лучше.Спасибо.

6
задан FMFF 22 January 2013 в 19:56
поделиться

5 ответов

Установите значение по умолчанию в конструкторе:

this.MyProperty = <DefaultValue>;
5
ответ дан 8 December 2019 в 05:52
поделиться

Просто инициализируйте его в конструкторе:

public class MyClass
{
    public string MyProperty { get; set; }

    public MyClass()
    {
        MyProperty = "default value";
    }
}

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

9
ответ дан 8 December 2019 в 05:52
поделиться

Пожалуйста, не предлагайте мне использовать частное свойство.

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

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

3
ответ дан 8 December 2019 в 05:52
поделиться

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

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

2
ответ дан 8 December 2019 в 05:52
поделиться

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

2
ответ дан 8 December 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: