C# 限制 setter 值
C# Limiting setter value
我目前正在尝试实现属性,特别是限制我的 setter。例如,我有一个 'Money' 浮点字段,我喜欢它,所以你可以给它 add/subtract 值,但是当它为 0 时,让它不能再被减去,但它仍然可以被添加到。
我在下面的代码中看到,一旦 'Money' 达到 0,它将始终停留在 0。有什么方法可以检查 setter 是否被添加到?我知道您可以在 AddMoney 或 SubtractMoney 方法中检查它,但更好奇是否可以在 setter.
中这样做
public float Money {
get {
return this._money;
}
set {
if (_money <= 0){
_money = 0;
} else {
_money = value;
}
}
}
void AddMoney(float addAmount){
Money += addAmount;
}
void SubtractMoney(float subtractAmount){
Money -= subtractAmount;
}
尝试测试该值是否为负数不要更改 Money
值:
set {
if (value >= 0)
{
_money = value;
}
else
{
//You may throw exception, or log a warning
}
}
我目前正在尝试实现属性,特别是限制我的 setter。例如,我有一个 'Money' 浮点字段,我喜欢它,所以你可以给它 add/subtract 值,但是当它为 0 时,让它不能再被减去,但它仍然可以被添加到。
我在下面的代码中看到,一旦 'Money' 达到 0,它将始终停留在 0。有什么方法可以检查 setter 是否被添加到?我知道您可以在 AddMoney 或 SubtractMoney 方法中检查它,但更好奇是否可以在 setter.
中这样做public float Money {
get {
return this._money;
}
set {
if (_money <= 0){
_money = 0;
} else {
_money = value;
}
}
}
void AddMoney(float addAmount){
Money += addAmount;
}
void SubtractMoney(float subtractAmount){
Money -= subtractAmount;
}
尝试测试该值是否为负数不要更改 Money
值:
set {
if (value >= 0)
{
_money = value;
}
else
{
//You may throw exception, or log a warning
}
}