为什么要使用访问器而不是简单的赋值?

时间:2013-12-24 11:29:42

标签: c# .net accessor

为什么在c#.net中使用访问器,而我们可以使用简单的赋值,如

  public string name = "Haymen";

而不是这样做:

 public string Name 
{
  get 
{ 
  return name; 
}
set 
{
   name = value; 
}
}

以及该属性如何设置或返回某些内容,因为它没有任何方法可以显示任何内容?

    public class Movie 
    {
      public int ID { get; set; }
    }

3 个答案:

答案 0 :(得分:0)

Skeet有» an article就是这样!您的案例由自动属性覆盖,因此您没有完成所有的写作工作。

答案 1 :(得分:0)

这取决于您尝试做什么,您出于各种原因使用访问器,其中一个原因是确保类属性保持私有,并且只能在内部直接操作。

一个例子: -

private int _myAge {get; set;}

public int MyAge
{
   get
   {      
      if(_myAge == null)
      {
         _myAge == GetMyAge();
      }

      return _myAge; 

   }

}

答案 2 :(得分:-1)

使用

public string name = "Haymen";
  1. 如果你确定你永远不需要调试对该变量的访问(即当有人读/写它时设置一个断点)。
  2. 如果您知道更改它将永远不会影响您对象的内部状态(即您依赖或期望的副作用)。
  3. 您想要查看更少的行,并且您已满足上述要求。
  4. 您希望XML序列化的“仅数据类”,并且您不希望创建大量代码来执行私有方法的转换(至少从C#3.5开始)。
  5. 注意这就是说,一般来说,您不应将字段公开为公共成员。请参阅here