如何将多个变量的值添加到一个变量中? | C#

时间:2016-07-07 07:47:09

标签: c# variables decimal addition

如何将多个变量的值添加到C#中的一个变量中?

例如,我声明了三个变量

decimal number1 = 53m;

decimal number2 = 33m;

decimal total;    

现在,当我喜欢这个时

total = number1 + number2; 

出现错误"使用未分配的本地变量"

即使这样也不行

total = number1;  
total = number2;    

它也不起作用

total += number1 
total += number2

我知道在文本框中我们喜欢这样,所以,我认为它也适用于变量,但事实并非如此。

totaltextbox.text += textbox.text1  
totaltextbox.text += textbox.text2  
  

编辑:

现在,在我将声明中的每个值分配给每个变量之后它正在工作。

之前我只在if语句中分配了它们,这导致了问题。看看我的方法,例如,

private decimal OilLubeCharges()
        {
           decimal oilChange_var=0m;
           decimal lubeJob_var=0m;
           decimal oilLube_var=0m;
           decimal totalOiltLubeCharges_var=0m;


            if (oilChangeCheckBox.Checked)
            {
                oilChange_var = 26.00m;

            }

            else if (lubeJobCheckBox.Checked)
            {
                lubeJob_var = 18.00m;
            }

            else if (oilChangeCheckBox.Checked && lubeJobCheckBox.Checked)
            {
                oilLube_var = 26.00m + 18.00m;
            }

            totalOiltLubeCharges_var = oilChange_var + lubeJob_var + oilLube_var;  

我不明白我是否在if语句中给变量赋值,然后它也应该有效。为什么他们需要在一开始就给出一个价值?

感谢所有付出努力的人。对于!

3 个答案:

答案 0 :(得分:4)

使用未分配的局部变量意味着:

decimal total;  

已声明此内容,但它没有值,您尝试在具有值之前使用它。这里没有任何作业。

所以你初始化它:

decimal total = 0;

你的问题现在消失了。

但是,如果您尝试使用未初始化的变量,则只会出现错误

技术上如此:

decimal val1 = 10;
decimal val2 = 10;

decimal total;

total = val1 + val2; // this works

这也与

相同
decimal total = val1 + val2; // an assignment.

什么是行不通的

decimal total; // compiler knows you want a total variable

if (total > 10) // at this point, there is no value in total so how can we compare it
{
    Console.WriteLine("This won't compile");
}

查看您的问题

private decimal OilLubeCharges()
{
   // this is what i **think** you might have started with
   decimal oilChange_var;
   decimal lubeJob_var;
   decimal oilLube_var;
   decimal totalOiltLubeCharges_var;


    if (oilChangeCheckBox.Checked)
    {
        oilChange_var = 26.00m;

    }

    else if (lubeJobCheckBox.Checked)
    {
        lubeJob_var = 18.00m;
    }

    else if (oilChangeCheckBox.Checked && lubeJobCheckBox.Checked)
    {
        oilLube_var = 26.00m + 18.00m;
    }

    totalOiltLubeCharges_var = oilChange_var + lubeJob_var + oilLube_var;

这里很简单,因为你已经将变量定义为top,然后使用if语句来定义这些变量是否设置。 这意味着他们可能没有价值。这是因为这一行

totalOiltLubeCharges_var = oilChange_var + lubeJob_var + oilLube_var;

您使用所有变量明确。但在该行之前,您有条件地为他们提供初始值。

因此,例如,如果lubeJobCheckBox.Checked为false,则您的lubeJob_var从未获得初始值。所以无法使用

答案 1 :(得分:0)

此示例可能会对您有所帮助。

using System;
using System.Collections.Generic;

using System.Linq;
using System.Text.RegularExpressions;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            decimal number1 = 53m;

        decimal number2 = 33m;

        decimal total; 

        total = number1 + number2; 

        Console.WriteLine(total);
    }
}
}

http://rextester.com/CTJQ60331

enter image description here

答案 2 :(得分:-2)

您需要先为总数分配一些值。

    decimal total=0;

    decimal total = number1 + number2;