Выбор значения по умолчанию для типа Enum без необходимости изменения значений - PullRequest
186 голосов
/ 09 февраля 2009

В C # возможно ли украсить тип Enum атрибутом или сделать что-то еще, чтобы указать, каким должно быть значение по умолчанию, без изменения значений? Требуемые числа могут быть установлены в камне по любой причине, и было бы удобно сохранить контроль над значением по умолчанию.

enum Orientation
{
    None = -1,
    North = 0,
    East = 1,
    South = 2,
    West = 3
}

Orientation o; // Is 'North' by default.

Ответы [ 13 ]

1 голос
/ 28 сентября 2011

Значение по умолчанию является первым в определении. Например:

public enum MyEnum{His,Hers,Mine,Theirs}

Enum.GetValues(typeOf(MyEnum)).GetValue(0);

Это вернет His

0 голосов
/ 09 января 2019
enum Orientations
{
    None, North, East, South, West
}
private Orientations? _orientation { get; set; }

public Orientations? Orientation
{
    get
    {
        return _orientation ?? Orientations.None;
    }
    set
    {
        _orientation = value;
    }
}

Если для свойства установлено значение null, возвращаются значения Orientations.None при получении. Свойство _orientation по умолчанию имеет значение null.

0 голосов
/ 22 июля 2011
[DefaultValue(None)]
public enum Orientation
{
    None = -1,
    North = 0,
    East = 1,
    South = 2,
    West = 3
}

Тогда в коде вы можете использовать

public Orientation GetDefaultOrientation()
{
   return default(Orientation);
} 
...