在C#中,properties
(属性)和fields
(字段)都是用于访问类的内部状态的,但它们之间存在一些重要的区别。
字段(Fields):
static
关键字修饰)或非静态的。public
、private
等),这意味着它们在类的外部也是可见的(这通常是不推荐的,因为它破坏了封装性)。属性(Properties):
get
和set
访问器来控制对字段的访问。这些访问器可以包含逻辑代码,例如验证、转换或懒加载等。下面是一个简单的示例,展示了字段和属性的区别:
public class Person
{
// 字段
private string _name;
// 属性
public string Name
{
get { return _name; }
set { _name = value; }
}
}
在这个示例中,_name
是一个字段,而Name
是一个属性。通过属性,我们可以控制对_name
字段的访问,并在需要时添加额外的逻辑。