Автоматические свойства C # - настройка по умолчанию - PullRequest
6 голосов
/ 26 июля 2010

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

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

public string MyProperty { get; set; }

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

Ответы [ 6 ]

9 голосов
/ 26 июля 2010

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

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

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

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

5 голосов
/ 26 июля 2010

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

this.MyProperty = <DefaultValue>;
3 голосов
/ 26 июля 2010

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

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

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

2 голосов
/ 26 июля 2010

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

2 голосов
/ 26 июля 2010

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

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

1 голос
/ 05 ноября 2016

Начиная с C # 6.0, вы можете назначить значение по умолчанию для авто-свойства.

public string MyProperty {get; set; } = "Default Value";
...