公共变量-需要属性C#

本文关键字:属性 变量 | 更新日期: 2023-09-27 18:10:32

可能重复:
C#:公共字段与自动属性

我读到C#中的属性被声明或用于向其他人提供私人成员的访问权限。在这种情况下,当我们宣布公共成员时,我们是否还必须为他们宣布财产。

在下面的示例中,他们为公共成员声明了属性。我不知道为什么?

class Customer
{
     public double TotalPurchases { get; set; }
     public string Name { get; set; }
     public int CustomerID { get; set; }
}

谢谢!

公共变量-需要属性C#

使用属性而不是公共字段可以在下一个版本中对这些属性的实现方式进行不间断的更改-使用公共字段,任何更改都是不间断的。

例如,您可以更改TotalPurchases的实现以执行计算,而不是直接返回后备字段的值。从类使用者的角度来看,这种更改是不间断的,不会影响应用程序的工作方式。

 public double TotalPurchases
 {
   get
   {
     return CalculatePurchases();
   } 
 }

因此,首先,C#中的属性是由于多种原因声明的,而不是私有的。

例如,您可以使getter为公共,setter为私有:

public double TotalPurchases 
{
   get; 
   private set;  
}

此外,对于一些由反射支持的框架,它们查找属性而不是字段。在这种情况下,属性是必须的,即使在getter/setter中什么都不做的情况下看起来毫无用处。