侧边栏壁纸
  • 累计撰写 1,021 篇文章
  • 累计收到 3 条评论

C# 字段和属性

私人云
2026-01-29 / 0 评论 / 0 阅读 / 正在检测是否收录...

字段(Field)和属性(Property)是类中常见的成员,它们在作用和使用方式是有区别的。

字段(Field)的作用及特点

字段是类或结构体中直接声明的变量,作用是存储类的实例或对象的状态数据。

字段可以是任意类型的,如基本类型(int,string,bool...)、引用类型(class、array、interface...)或者是自定义类型。

字段可以直接被访问和修改(除非使用访问修饰符限制),字段不具备逻辑控制能力,无法在赋值或读取值时添加特定的验证或者逻辑。字段因为是直接操作内存的,所以性能相当比较高。使用字段时,通常设为private来隐藏实现的细节,应为这样外部不能直接反问,在数据安全上有一定的保护。

//定义私有年龄字段

private int _age;

因为字段通常设置为private来隐藏实现的细节,实例化对象后就无法赋值和取值了,所有在代码的设计上提供了成员属性。

属性的作用及特点

属性是对字段的封装,通过get和set访问器来控制对字段的访问,这样就提供了更安全,灵活的数据访问方式。

提供了字段的控制访问,可以在访问是添加必要的验证和逻辑,避免了无效的数据。属性在面向对象的设计中体现了封装的特性。C# 支持自动属性,如果使用属性没有写私有字段,编译器会自动生成私有字段。

//定义年龄属性,添加逻辑验证年龄必须大于0小于120private int _age;public int Age{get { return _age;  }set{if (value < 0|| value<120){throw new ArgumentException(nameof(value), "Age must be between 1 and 120.");}}}

如果把字段比喻成"仓库"或者"存储空间",属性就是"守门人"。这种设计体现了封装性的原则,使得类的内部实现细节可以被隐藏,同时通过属性提供安全、可控的外部接口。

0

评论 (0)

取消