gpt4 book ai didi

c# - 错误 1 ​​使用未分配的局部变量 'rental'

转载 作者:行者123 更新时间:2023-11-30 21:18:55 25 4
gpt4 key购买 nike

我得到了错误。我正在查看的方式是我希望从 dayrental() * 19.95 返回的值存储在租金中。

使用未赋值的局部变量'rental'

 private void button1_Click(object sender, EventArgs e)
{

double rental;
if (checkBox1.Checked == true)
rental = dayrental() * 19.95;
label4.Text = Convert.ToString(rental);




}

private void label4_Click(object sender, EventArgs e)
{

}
public double dayrental()
{
var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
var rentalDays = timeSpan.Days;
return (double) rentalDays;
//label4.Text = Convert.ToString(rentalDays);
}

最佳答案

出现此消息的原因是编译器不允许您使用未分配的变量。

让我们假设您的 CheckBox.Checked 属性为 false,会发生什么情况?您正在尝试转换变量的值。最后,你正在使用它!但是编译器应该如何知道它的值(value)呢?

这是一个深入解释此错误的链接:Compiler Error CS0165 .

您需要告诉编译器您知道自己在做什么。如何?通过初始化变量的默认值。它可能是以下一些:

double rental = default(double);

double rental = 0;

否则,当此 CheckBox 未被 Checked 时,您可能希望表单不显示任何值。然后,您需要一个可为 null 的 double 类型。

double? rental = null;

double? rental = default(double?);

在使用此可空 double 值类型时,这将允许您在 CheckBox.Checked = false 时不显示任何内容。现在,您应该问问自己,当 CheckBox 未被选中 时,是否要显示零 (0)。

顺便说一句,if 条件只需要在其括号中包含一个 bool 表达式,而这正是 CheckBox.Checked 属性的作用,因此无需比较它反对 true

double? rental = null;

if (CheckBox1.Checked)
rental = DayRental() * 19.95;

label4.Text = Convert.ToString(rental);

遵循这个简单的规则,您应该永远不会再遇到这个错误。

这有帮助吗?

关于c# - 错误 1 ​​使用未分配的局部变量 'rental',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4016507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com