C#未分配变量
本文关键字:变量 分配 | 更新日期: 2023-09-27 18:28:45
我是C#编程的新手,我不太了解它的语法或工作原理,但我一直在学习,它进展得很好。我正在尝试将我最近用Python编写的一个程序转换为C#,这样它就可以在windows上运行,而无需安装Python。在转换过程中,我不得不改变很多方法,这花了很长时间,但我一直在努力解决大多数问题。然而,这个问题对我来说毫无意义。我已经为双"b1"分配了一个值和一个类型,但它告诉我,我不能在b2的定义中使用它?
double b;
double b1;
double b2;
if (noSlope == true)
b = 0;
else
b1 = slopem * Convert.ToDouble(x1);
b2 = Convert.ToDouble(y1) - b1;
b = b2;
Visual Studio一直告诉我"b1"是一个未分配的局部变量。我以为我只是把它分配在上面的线上了?有人能告诉我为什么要这样做吗,或者如何为b1赋值以便使用它吗?提前感谢!
在c#中,块使用{
和}
进行标记,而不是缩进。您当前的代码相当于
double b;
double b1;
double b2;
if (noSlope == true)
{
b = 0;
}
else
{
b1 = slopem * Convert.ToDouble(x1);
}
b2 = Convert.ToDouble(y1) - b1;
b = b2;
正如您所看到的,当条件评估为true
时,您将不会分配b1
。
PS。您可以将代码重写为
double b;
if (noSlope == true)
{
b = 0;
}
else
{
b = Convert.ToDouble(y1) - slopem * Convert.ToDouble(x1);
}
甚至
double b = noSlope ? 0 : Convert.ToDouble(y1) - slopem * Convert.ToDouble(x1);