C#中字段的get和set的区别
时间: 2024-09-06 10:05:55 浏览: 63
深入C#中get与set的详解
在C#中,`get`和`set`是属性访问器,它们定义了如何读取(get)和修改(set)类的私有字段(`private field`)。**区别如下**:
1. **访问性**: `get`方法允许外部代码获取属性的当前值,但不能直接修改它;而`set`方法则提供了修改属性值的能力。
2. **逻辑控制**: 在`get`方法内部,你可以实现一些逻辑,比如验证、转换或计算属性值。同样,在`set`方法中,可以进行值的校验、更新以及可能的副作用操作。
3. **封装性**: 使用属性提供了一种封装机制,隐藏了实际字段的细节,提高了代码的安全性和维护性。
下面是一个简单的示例[^1]:
```csharp
public class MyClass
{
private int myPrivateField;
// 定义了一个名为myProperty的公共属性
public int MyProperty
{
get => myPrivateField; // 只读,获取字段值
set
{
if (value < 0)
throw new ArgumentException("Value cannot be negative"); // 设置时进行验证
myPrivateField = value; // 更新字段值
}
}
}
```
在这个例子中,外界只能通过`MyProperty`来操作`myPrivateField`,如果试图设置一个负数,就会抛出异常。
阅读全文