Как вы даете C-Auto-Property значение по умолчанию? - PullRequest
1663 голосов
/ 03 сентября 2008

Как задать для свойства C # Auto-Property значение по умолчанию? Я либо использую конструктор, либо возвращаюсь к старому синтаксису.

Использование конструктора:

class Person 
{
    public Person()
    {
        Name = "Default Name";
    }
    public string Name { get; set; }
}

Использование обычного синтаксиса свойства (со значением по умолчанию)

private string name = "Default Name";
public string Name 
{
    get 
    {
        return name;
    }
    set
    {
        name = value;
    }
}

Есть ли лучший способ?

Ответы [ 23 ]

1 голос
/ 26 мая 2011
class Person 
{    
    /// Gets/sets a value indicating whether auto 
    /// save of review layer is enabled or not
    [System.ComponentModel.DefaultValue(true)] 
    public bool AutoSaveReviewLayer { get; set; }
}
0 голосов
/ 13 сентября 2012

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

0 голосов
/ 07 декабря 2013

Я думаю, что это будет сделано для ya givng SomeFlag по умолчанию false.

private bool _SomeFlagSet = false;
public bool SomeFlag
{
    get
    {
        if (!_SomeFlagSet)
            SomeFlag = false;        

        return SomeFlag;
    }
    set
    {
        if (!_SomeFlagSet)
            _SomeFlagSet = true;

        SomeFlag = value;        
    }
}
...