当我在这样的类中声明变量时:
public class Test
{
public string x = 0;
}
还有一个类似的:
public class Test2
{
public string x {get; set;}
}
有什么区别?
通常两者都不称为"变量"。第一个是"字段",第二个是"属性"(自动实现的属性)。
MSDN关于"领域"的摘录:
字段是在类或结构中直接声明的任何类型的变量。字段是其包含类型的成员。
MSDN关于"属性"的摘录:
属性是一个成员,它提供了一种灵活的机制来读取、写入或计算私有字段的值。属性可以像公共数据成员一样使用,但它们实际上是称为访问器的特殊方法。这使得数据可以轻松访问,并且仍然有助于提高方法的安全性和灵活性。