【发布时间】:2022-01-06 06:21:33
【问题描述】:
class Bank
{
private String accoutNumber;
private double credit;
public String AccountNumber
{
get { return accoutNumber; }
set { accoutNumber = value; }
}
public double Credit
{
get { return credit; }
set { credit = value; }
}
public Bank() { }
public Bank(String accoutNumber)
{
this.accoutNumber = accoutNumber;
}
public Bank(String accoutNumber, int credit)
{
this.accoutNumber = accoutNumber;
this.credit = credit;
}
public void addBalance(int amount) { credit += amount; }
public void vyber(int amount)
{
if (amount > credit)
return;
credit -= amount;
}
public void transfer(int amount, String accoutNumber)
{
if (amount > credit)
return;
//else transfer from one object to another
}
}
(在另一个文件中,我使用转移方法将信用从一个对象转移到另一个对象,我只是不知道该怎么做,而且我没有使用任何数据库文件,它尽可能简单可能)
Bank object1 = new Bank("1234567890/1234", 10000);
Bank object2 = new Bank("7845213154/1448", 7000);
object1.transfer("7845213154/1448", 2000)
//object1's credit = 8000
//object2's credit = 9000
【问题讨论】:
-
好吧,
object1是什么,它与帐号有何关系,以及当前实例中可用的内容是什么?我可能期望更像是查找,即someAccountDirectoryService[finalAccountNumber].AddBalance(amount);我不会使用+=,因为您几乎肯定希望更改至少是原子的,即某些锁定原语或Interlocked -
@MarcGravell 它只是类的随机对象;帐号更像是单个对象的 ID
-
好吧,如果它“只是一个随机对象”,您将无能为力; 实际上是什么?
-
@MarcGravell 他说“类的”,这似乎很清楚意味着“object1 是类的一个实例”。在上下文中,我假设该类是包含所提供代码的对象。
-
你的意思是想以原子转移的形式进行支付吗?减量 3000 和增量 3000 要么都成功,要么都失败?使用数据库术语,您想“在 C# 中启动一个事务,然后转移资金,然后提交事务”?