c#中字段和属性的区别
时间: 2024-09-15 13:15:37 浏览: 64
浅谈C# 字段和属性
在 C# 中,字段(Field)和属性(Property)都是数据成员,但它们有着不同的用途和工作方式:
1. **字段**:字段直接存储数据,它是类或结构体中私有、公有或受保护的数据成员。你可以直接访问或修改字段的值,通常用于存储类的基本信息。例如:
```csharp
public class MyClass {
private int myValue; // 字段
}
```
2. **属性**:属性是对字段的封装,它提供了一种更高级的方式来操作数据,允许开发者添加验证、访问控制以及获取/设置逻辑。属性通常包含getter和setter方法,可以包含验证规则和默认值。示例:
```csharp
public class MyClass {
private int MyValue { get; set; } // 属性
}
```
调用属性就像操作字段一样,但实际执行的是对应的getter和setter方法:
```csharp
MyClass obj = new MyClass();
obj.MyValue = 42;
Console.WriteLine(obj.MyValue); // 输出42
```
阅读全文