ASP.NET 3.5属性在类中的私有成员访问

时间:2009-11-26 17:47:34

标签: c# asp.net .net-3.5 properties

我已经了解了如何在ASP.NET 3.5中声明C#中的属性

public DateTime DisplayDate
{
     get;
}

而不是

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

like this post explains.

我的问题是,在课堂上,我如何访问私有变量?

例如,而不是这个

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

我应该分配什么? 是公共财产吗?

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

这是正确的吗?

3 个答案:

答案 0 :(得分:3)

public DateTime DisplayDate
{
     get; private set;
}

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

答案 1 :(得分:1)

这样的自动属性(不限于ASP.NET)就在那里,所以你不必处理私有字段。如果要设置属性的值,请使用属性本身并添加私有setter(因此只有您的类可以设置它)

public DateTime DisplayDate
{
    get; 
    private set;
}

答案 2 :(得分:0)

您总是需要使用c#3.0自动属性声明getter和setter - 请参阅其他答案 - 诀窍是将setter标记为private。

public Foo { get; private set; }