Доступ к закрытым членам свойств ASP.NET 3.5 в классе - PullRequest
0 голосов
/ 26 ноября 2009

Я читал о том, как в ASP.NET 3.5 вы можете объявить свойства в C #

public DateTime DisplayDate
{
     get;
}

вместо

private DateTime _displayDate
public DateTime DisplayDate
{
     get {return _displayDate;}
}

как этот пост объясняет.

Мой вопрос в классе, как мне получить доступ к закрытой переменной?

Например, вместо этого

public MyClass(DateTime myDisplayDate)
{ _displayDate = myDisplayDate; }

Что мне назначить? Это государственная собственность?

public MyClass(DateTime myDisplayDate)
{ DisplayDate = myDisplayDate; }

Это правильно?

Ответы [ 3 ]

3 голосов
/ 26 ноября 2009
public DateTime DisplayDate
{
     get; private set;
}

public MyClass(DateTime myDisplayDate)
{ 
    this.DisplayDate = myDisplayDate; 
}
1 голос
/ 26 ноября 2009

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

public DateTime DisplayDate
{
    get; 
    private set;
}
0 голосов
/ 26 ноября 2009

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

public Foo { get; private set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...