使用来自属性的设置验证在构造函数中设置私有字段
本文关键字:设置 构造函数 字段 验证 属性 | 更新日期: 2023-09-27 18:14:34
所以。。如何使用构造函数内部的属性验证私有实例变量(字段(?
我有这个代码可以工作,但我有一种强烈的感觉,这不是应该做的:
class Account
{
private decimal acctBalance = 0;
public decimal AcctBalance
{
get
{
return acctBalance;
}
set
{
if (acctBalance >= 0)
acctBalance = value;
else
{
Console.WriteLine("Invalid balance, balance set to 0");
acctBalance = 0;
}
}
}
public Account(decimal balance)
{
acctBalance = balance;
AcctBalance = acctBalance;
}
}
我只想确保这是正确的方法
谢谢!
尽管存在一些问题,但您的方法基本上是正确的。我修复了它们,并在代码中添加了注释。
class Account
{
private decimal acctBalance = 0;
public decimal AcctBalance
{
get
{
return acctBalance;
}
set
{
//modified to check value instead of acctBalance
if (value >= 0)
acctBalance = value;
else
{
Console.WriteLine("Invalid balance, balance set to 0");
acctBalance = 0;
}
}
}
public Account(decimal balance)
{
//redundant! Changing AcctBalance changes acctBalance
//acctBalance = balance;
AcctBalance = balance;
}
}