【问题标题】:ASP.NET 3.5 properties' private member access within classASP.NET 3.5 属性在类中的私有成员访问
【发布时间】:2009-11-26 17:47:33
【问题描述】:

我已经了解了如何在 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; }

这对吗?

【问题讨论】:

  • 您始终需要使用 c# 3.0 自动属性声明 getter 和 setter - 请参阅下面的答案 - 诀窍是将 setter 标记为 privte。

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


【解决方案1】:
public DateTime DisplayDate
{
     get; private set;
}

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

【讨论】:

    【解决方案2】:

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

    public DateTime DisplayDate
    {
        get; 
        private set;
    }
    

    【讨论】:

      【解决方案3】:

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

      public Foo { get; private set; }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 2023-03-22
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        相关资源
        最近更新 更多