【编程语言】C#字段与属性

1.字段(Field)

public string Type;

这是一个公开的字段。字段是类的一个成员,用于存储数据。在这个例子中,Type是一个公开的字符串字段,意味着它可以直接被类的外部访问和修改。

2.完整属性”(full property)

private string type; //角色类型
public string Type
{
    get { return type; }
    set { type = value; }
}

这种属性通常被称为“完整属性”(full property),因为它显式地定义了如何获取和设置属性的值。与自动属性不同,完整属性允许您在 get 和 set 访问器中添加自定义逻辑。
在这个特定的例子中,get 和 set 访问器只是简单地返回和设置私有字段 type 的值,没有添加任何额外的逻辑。
然而,这种结构为将来的扩展提供了可能性,比如添加验证逻辑来确保 Type 属性只能被设置为有效的角色类型。

3.自动属性(Auto-Implemented Property)

public string Type { get; set; }

这是一个自动属性。当你声明一个这样的属性时,编译器会自动为你生成一个私有的、只读的备份字段来存储属性的值。你无法直接访问这个备份字段,因为它是由编译器管理的。这个属性有一个get访问器和一个set访问器,允许你获取和设置属性的值。

字段与属性的区别:

  • 封装: 自动属性提供了封装的好处,因为你可以通过get和set访问器来控制对属性值的访问和修改。例如,你可以在set访问器中添加验证逻辑,确保属性值满足某些条件。而字段则不提供这样的封装,它们直接暴露给类的外部。
  • 可维护性: 使用属性而不是字段通常会使代码更具可维护性,因为你可以在不改变类的外部接口的情况下修改属性的实现。例如,你可以将自动属性更改为只读属性(只提供get访问器),或者添加一个计算逻辑来动态地生成属性的值。
  • 惯例: 在C#编程中,通常推荐使用属性而不是字段来公开类的数据成员,因为属性提供了更好的封装和可维护性。字段通常应该被声明为私有的,并通过公共方法或属性来访问。 因此,在大多数情况下,你应该使用自动属性而不是公开的字段来公开类的数据成员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值