我正在制作一个简单的ATM,我遇到了一个问题。
申请:http://pastebin.com/Uk1q5vpC
处理命令:http://pastebin.com/eG8XWM4w
帐户:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>d3 test</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
</head>
<body>
<script>
//Width and Height
var w = 500;
var h = 50;
//Create SVG Element
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
var line = svg.append("path")
.attr("stroke","orange")
.attr("stroke-width", 7)
.attr("fill","none");
//Global array
var linedata = [];
//random multiplier
var randNum = 50;
setInterval(function() {
var random = {
a: Math.floor(Math.random()*randNum),
};
linedata = [ "M 0 0 L 200 " + (100+random.a) ];
line.data(linedata);
line.attr("d", function(d) {
return d;
})
}, 10);
提款:
class Konto
{
public Bankkort bankkort;
private string namn;
public string losenord;
public int pengar;
public Kontoutdrag ku = new Kontoutdrag();
public Konto(Bankkort bk, string n, string l, int p)
{
bankkort = bk;
namn = n;
losenord = l;
pengar = p;
}
public override string ToString()
{
return namn;
}
}
语句(显示您存款或取款的时间和金额的日志):
class Uttagning : Kommando
{
public void Hantera(Konto konto)
{
Console.WriteLine("Du har " + konto.pengar + " kr. Hur mycket vill du ta ut?");
string inmatning = Console.ReadLine();
konto.pengar -= int.Parse(inmatning);
konto.ku.log.Add("Uttagning: " + inmatning);
Console.WriteLine("Nu har du " + konto.pengar + " kr!");
}
}
我会尽力解释我的问题。我提取500美元,并希望将其保存到日志(列表)。如果您在class Kontoutdrag : Kommando
{
public List<string> log = new List<string>();
public void Hantera(Konto konto)
{
for (int i = 0; i < log.Count; i++)
{
Console.WriteLine(log[i]);
}
}
}
课程中选中public Kontoutdrag ku = new Kontoutdrag();
,则每个帐户都有一个&#34;语句&#34; /日志。我修改了Account
类中konto.ku.log.Add("Uttagning: " + inmatning);
方法中的日志列表Hantera
。但是在&#34;语句&#34; / Log中调用Withdraw
方法时,它不打印任何内容。
步骤:
Hantera
请告诉我你是否误解了我并对命名感到抱歉(这是瑞典语)。欢迎您更改此文字和标题。
答案 0 :(得分:0)
case "c":
kom = new Kontoutdrag();
break;
// …
new HanteraKommando().Hantera(kom, list[i]);
如您所见,您正在创建一个新的Kontoutdrag
对象,然后将其传递给Hantera命令。当然,新的Kontoutdrag
也有自己的(空)列表,所以当你调用该方法时,它不会打印任何内容。
相反,您应该从Konto
对象获取现有对象。像这样:
Konto konto = list[i];
Kommando kom = null;
string kommando = Console.ReadLine();
switch (kommando)
{
// …
case "c":
// get the existing object
kom = konto.ku;
break;
}
new HanteraKommando().Hantera(kom, konto);