Вопрос об автоматических свойствах - PullRequest
0 голосов
/ 12 ноября 2010

что происходит, если вы реализуете автоматическое свойство

public string Foobar { get; set; }

и затем кодируете соответствующую переменную

private string foobar = string.Empty;

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

Ответы [ 3 ]

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

Нет, автоматическое свойство не будет использовать вашу переменную. Это было бы как любое другое поле с именем foobar.

Имя smilarity никак не влияет на компилятор.

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

Этот пост показывает, как все работает на уровне IL (Intermediate Langauge, Assembly of C #).

0 голосов
/ 12 ноября 2010

Компилятор не будет использовать эту переменную, нет.Чтобы использовать вашу переменную, вам нужно написать

private string foobar = string.Empty;

public string Foobar 
{
    get { return foobar; }
    set { foobar = value; }
}

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

0 голосов
/ 12 ноября 2010

С чего бы это?Вспомогательное поле не должно (и часто не) именоваться таким образом.

...