C#属性重写并加入判断
时间: 2024-09-30 10:16:12 浏览: 38
在C#中,属性(Properties)是一种特殊的字段,它提供了一种封装数据的方式,并允许我们通过名称来访问和设置值,而不需要直接操作底层的对象成员。当需要对基础属性的行为进行扩展或修改时,可以重写(Override)属性并在自定义的实现中添加额外的检查或逻辑。
例如,假设我们有一个基础属性`BaseProperty`:
```csharp
public class BaseClass
{
public virtual int BaseProperty { get; set; }
}
```
我们可以创建一个子类`DerivedClass`,重写这个属性并加入条件判断:
```csharp
public class DerivedClass : BaseClass
{
// 重写 BaseProperty 属性
public override int BaseProperty
{
get => base.BaseProperty;
set
{
if (value > 0) // 添加了判断,只接受大于零的值
base.BaseProperty = value;
else
throw new ArgumentException("Base property must be greater than zero.");
}
}
}
```
在这个例子中,如果试图给`DerivedClass`的`BaseProperty`设置非正数,将会抛出异常。这展示了如何利用属性重写功能来增强原始属性的行为。
阅读全文