簡體   English   中英

如何將多個變量的值添加到一個變量中? | C#

[英]How to add values to multiple variables into one single variable? | C#

如何將多個變量的值添加到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語句中給變量賦值,然后它也應該工作。 為什么他們需要在一開始就給出一個價值?

感謝所有付出努力的人。 尊重!

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

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;

這里很簡單,因為你已經在頂部定義了變量,然后使用if語句來定義這些變量是否被設置。 這意味着他們有可能沒有價值 這是因為這條線

totalOiltLubeCharges_var = oilChange_var + lubeJob_var + oilLube_var;

在這里,您明確地使用所有變量。 但在那條線之前,你有條件地給它們一個初始值。

因此,例如,如果lubeJobCheckBox.Checked為false,那么您的lubeJob_var從未被賦予初始值。 所以你不能使用它

這個例子可能對你有幫助。

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

在此輸入圖像描述

你需要先為總數分配一些值。

    decimal total=0;

要么

    decimal total = number1 + number2;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM