【C#】【语法】类的成员变量(字段)和属性

1. 成员变量(字段)

  • 定义:成员变量(通常简称为字段)是类中直接声明的数据成员,用于存储对象的状态。
  • 访问修饰符:字段可以用访问修饰符(如publicprivateprotected等)来控制其访问级别,但通常将字段声明为private,以遵循封装的原则。
  • 语法:字段的声明通常是直接的,没有任何附加的逻辑。
  • 示例
public class Person
{
    // 这是一个字段
    private string name;
}
  • 特点:
    • 字段是直接存储数据的容器。
    • 字段通常在类内部直接使用。
    • 没有内置的逻辑来控制对字段的访问或修改。

 

 

2. 属性

  • 定义:属性是对类中数据的封装,提供了通过getset访问器来读取和写入类成员数据的机制。属性本质上是字段的高级形式,它允许你在访问字段时执行额外的逻辑。
  • 访问修饰符:属性的访问级别可以通过getset访问器分别控制。
  • 语法:属性通过getset访问器来实现访问控制。
  • 示例
public class Person
{
    private string name;

    // 属性带有自定义的 get 和 set 逻辑
    public string Name
    {
        get { return name; }
        set 
        {
            if (!string.IsNullOrEmpty(value))
            {
                name = value;
            }
        }
    }
}
  • 特点
    • 属性可以封装字段,允许开发者隐藏实现细节。提供一个易于使用的接口(getset),并允许在读取或写入时执行额外的逻辑(写在get和set里),例如数据验证或格式化、事件触发等。
    • 访问控制:可以对 get 和 set 访问器分别应用不同的访问修饰符,允许精细的访问控制。属性可以定义为只读(只有get),只写(只有set),或读写(同时有getset)。
    • 自动属性(如public string Name { get; set; })提供了一种简洁的方式声明属性,而不必显式声明字段。
  • 关于set和get:
    • 在任何地方给属性赋值时,就会调用其set方法;在任何地方读取属性的值时,就会调用get方法。

 

3. 总结

  • 字段是类中直接用于存储数据的成员,一般是private的,不提供直接的访问方式。
  • 属性则提供了一种受控的方式访问字段,可以添加额外的逻辑,如验证、通知、或其他业务规则。
  • 使用字段通常是简单、快速的,但可能会违反封装原则;而使用属性则可以更好地封装类的数据,并符合面向对象的编程理念。

 

posted @ 2024-08-16 15:34  ban_boi  阅读(50)  评论(0编辑  收藏  举报