C# 初学者 - "Use of Unassigned Local Variable" 问题

C# Beginner - "Use of Unassigned Local Variable" Issue

C# 新手(到目前为止只写了一周代码)尝试创建一个练习程序。似乎无法获取我想要存储在 'price1' 和 'price2' 中的数据。错误是 CS0165 Use of unassigned local variable 'price1' and 'price2'.

我试过移动代码行并添加 return 命令,但我似乎不太明白。

        Console.Write("What grocery are you buying: ");
        string product1 = Console.ReadLine();
        Console.Write("How many are you buying: ");
        int quantity1 = Convert.ToInt32(Console.ReadLine());

        double price1;
        if (product1 == "Steak")
        {
            price1 = Convert.ToDouble(steak.price * quantity1);
        }
        if (product1 == "Cheerios")
        {
            price1 = Convert.ToDouble(cheerios.price * quantity1);
        }
        if (product1 == "Pepsi")
        {
            price1 = Convert.ToDouble(pepsi.price * quantity1);
        }
        if (product1 == "Celeste Pizza")
        {
            price1 = Convert.ToDouble(celeste.price * quantity1);
        }



        Console.Write("What second grocery are you buying: ");
        string product2 = Console.ReadLine();
        Console.Write("How many are you buying: ");
        int quantity2 = Convert.ToInt32(Console.ReadLine());

        double price2;
        if (product2 == "Steak")
        {
            price2 = Convert.ToDouble(steak.price * quantity2);
        }
        if (product1 == "Cheerios")
        {
            price2 = Convert.ToDouble(cheerios.price * quantity2);
        }
        if (product1 == "Pepsi")
        {
            price2 = Convert.ToDouble(pepsi.price * quantity2);
        }
        if (product1 == "Celeste Pizza")
        {
            price2 = Convert.ToDouble(celeste.price * quantity2);
        }

        Console.WriteLine(price1 + price2);

正在尝试获取存储在 'price1' 和 'price2' 中的数据,以便我可以在最后将它们加在一起。对不起,如果我在这里有任何术语错误。

问题是,如果 product1 不等于您的 if 语句中的任何值,那么这些部分的 none 将永远 运行,等等理论上存在 price1 可能永远不会被赋值的危险。而且它不能使用没有价值的东西来将它添加到其他东西中。这就是编译器所抱怨的。您需要在首次声明时给 price1 一个默认值,作为备用选项,以防用户输入的内容不是四个预期产品名称之一。

double price1 = 0;

对于这种情况可能没问题,但您可以选择您认为最好的任何值,只要存在某种值即可。

您也会遇到与 price2 完全相同的问题。

需要将 "local variables" price1 和 price2 初始化为您选择的默认值,可能是 0。

基本上,当您决定获取它们的总和并显示它时,不能保证价格 1 或价格 2 会被设置为任何值。