Доступ к автоматическому свойству - c # - PullRequest
5 голосов
/ 16 марта 2011

В язык .net 3 добавлены автоматические свойства, которые в любом случае создают «приватное» поле, используя код:

public string foo {get;set;}

Возможно ли вообще получить какую-либо ссылку на это приватное поле?

Я хочу сделать что-то вроде

public string foo {get{/*some code to check foo for nulls etc*/};set;}

Без потери этой функции автоматического свойства и записи что-то вроде

private string _foo = null;
public string foo{get{_foo==null?_foo="hello"; return _foo;}set{_foo=value;}}

Ответы [ 2 ]

6 голосов
/ 16 марта 2011

Основное поле автоматического свойства анонимно ;вы не можете получить к нему доступ из его метода получения или установки.

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

private object _x;

public object X
{
    get { return _x; }
    set { _x = value; }
}
3 голосов
/ 16 марта 2011

У вас не может быть «автоматического» получения и «ручного» набора (или «ручного» получения с «автоматическим» набором).Вы должны иметь как «ручной», так и оба «автоматический».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...