C# 增值与不变
我正在努力使我的价值增加10。每次用户说C# 增值与不变,c#,C#,我正在努力使我的价值增加10。每次用户说add时,当前数字将增加5。然而,在我的代码中,当我调用add时,它总是返回15,并且从不将5添加到5。 每次用户说添加currNum应该更改,例如,如果currNum是10,那么他们说添加它将是15,如果他们再次说添加它应该是20 switch (e.Result.Text.ToUpperInvariant()) { case "ADD": lblText.Content = "Adding"; int
add
时,当前数字将增加5。然而,在我的代码中,当我调用add
时,它总是返回15,并且从不将5添加到5。
每次用户说添加currNum应该更改,例如,如果currNum是10,那么他们说添加它将是15,如果他们再次说添加它应该是20
switch (e.Result.Text.ToUpperInvariant())
{
case "ADD":
lblText.Content = "Adding";
int currNum = 10;
int plus = 5;
currNum = currNum + plus;
break;
default;
}
由于在方法中将
currNum
设置为10,因此最终的结果总是15。如果您试图增加一个总体值,那么增加值应该从任何可能影响它的方法之外开始。在下面的代码中,该值从10开始,并在每次调用第二个代码块时递增:
int currNum = 10;
在方法之外定义变量currNum,例如在类的开头。然后,无论何时调用以下方法,它都将递增5
switch (e.Result.Text.ToUpperInvariant())
{
case "ADD":
lblText.Content = "Adding";
int plus = 5;
currNum = currNum + plus;
break;
}
大量编辑以显示我知道如何做
publicstaticvoidunique()
{
流uniqueStream=File.Open(dataFolder+UniqueFile,FileMode.Open);
StreamReader readerUnique=新的StreamReader(uniqueStream);
字符串行=null;
line=readerUnique.ReadToEnd();
int countUnique=0;
int输出=0;
//int max=9999;
if(linesUnique.Length>countUnique/*&&Convert.ToInt32(linesUnique)
你想说什么?请更清楚一点…嗯,你的代码总是加上10和5。。。为什么你期望它得到15以外的任何东西?这是你得到的一些糟糕的缩进。每次用户说添加currNum应该改变,例如,如果currNum是10,那么他们说添加它将是15,如果他们再次说添加它应该是20,依此类推,也将添加到15??我对你在做什么感到困惑。你是如何增加输入的数量的?@FrankPytel我认为关键是你的增加值应该从任何可能影响它的方法之外开始。如果int currNum=10,可能会更清楚“代码>代码片段在它自己的代码块中?”詹姆斯同意。这就是我的答案。但它不应该是完美的-谢谢你的建议,为了清晰起见,我已经编辑了。@FrankPytel你应该做的是创建一个名为currentNumer的属性。创建对象时在10初始化。然后,当您使用开关时,每次加上5的值将产生您想要的效果!OP不希望添加5k次,他希望在用户输入时添加5次。因此,您不知道这将多久应用一次。顺便说一句:请把你的答案格式化一点。为什么你要从你的一个问题中复制代码作为这个问题的答案?这根本没用。。。这根本没关系!我甚至不能理解这和这个问题有什么关系。这有什么帮助?也许如果你解释一下,我们可以看到?请不要在你的帖子中发表不必要的评论。
public static void unique()
{
Stream uniqueStream = File.Open(dataFolder + UniqueFile, FileMode.Open);
StreamReader readerUnique = new StreamReader(uniqueStream);
string line = null;
line = readerUnique.ReadToEnd();
int countUnique = 0;
int output = 0;
//int max = 9999;
if (linesUnique.Length > countUnique /*&& Convert.ToInt32(linesUnique) < max*/ )
{
output = Convert.ToInt32(line);
countUnique++;
output = countUnique + output;
}
readerUnique.Close();
StreamWriter writer;
using (writer = new StreamWriter(dataFolder + UniqueFile))
{
writer.Write(output);
}
writer.Close();
}