C# 增值与不变

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

我正在努力使我的价值增加10。每次用户说
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();
    }