4、c# 字段和属性有什么区别?
字段是直接存储数据的成员,用于内部实现。属性提供对字段的封装和访问控制,用于外部接口,并允许添加额外的逻辑。
·
1、字段(Field)
1、直接存储数据。
2、通常用于类的内部实现。
3、访问级别可以是public、private、protected等。
2、属性(Property)
1、提供对字段的封装和访问控制。
2、可以包含获取(get)和设置(set)访问器。
3、通常用于类的外部接口。
4、允许添加额外的逻辑,如验证。
3、代码示例
public class Person
{
// 字段
private string nameField;
private int ageField;
// 属性
public string Name
{
get { return nameField; }
set
{
if (string.IsNullOrEmpty(value))
{
throw new ArgumentException("Name cannot be null or empty.");
}
nameField = value;
}
}
public int Age
{
get { return ageField; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException("Age cannot be negative.");
}
ageField = value;
}
}
}
class Program
{
static void Main()
{
Person person = new Person();
// 使用属性
person.Name = "John Doe"; // 调用属性的 set 访问器
Console.WriteLine(person.Name); // 调用属性的 get 访问器
// 尝试设置无效值会引发异常
// person.Name = ""; // ArgumentException: Name cannot be null or empty.
// person.Age = -5; // ArgumentOutOfRangeException: Age cannot be negative.
}
}
4、总结
1、字段是直接存储数据的成员,用于内部实现。
2、属性提供对字段的封装和访问控制,用于外部接口,并允许添加额外的逻辑。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)