“字段”是直接在类或结构中声明的任何类型的变量。字段是其包含类型的“成员”。
属性是这样的成员:它提供灵活的机制来读取、编写或计算某个私有字段的值。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。
class TimePeriod
{
private double seconds; //字段
public double Hours //属性
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}
class Program
{
static void Main()
{
TimePeriod t = new TimePeriod();
// Assigning the Hours property causes the 'set' accessor to be called.
t.Hours = 24;
// Evaluating the Hours property causes the 'get' accessor to be called.
System.Console.WriteLine("Time in hours: " + t.Hours);
}
}
// Output: Time in hours: 24
-
属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。
-
get 属性访问器用于返回属性值,而set 访问器用于分配新值。这些访问器可以有不同的访问级别。有关更多信息,请参见限制访问器可访问性(C# 编程指南)。
-
value 关键字用于定义由set 取值函数分配的值。
-
不实现 set 取值函数的属性是只读的。
-
对于不需要任何自定义访问器代码的简单属性,可考虑选择使用自动实现的属性。 有关更多信息,请参见 自动实现的属性(C# 编程指南)。