我是C#编程的新手,我不太了解它的语法或它是如何工作的,但我一直在学习它并且它已经很好地进行了。我正在尝试将我最近用Python编写的一个程序转换为C#,这样它就可以在Windows上运行而无需安装Python。而且我不得不改变我的很多方法来转换它,这需要花很长时间才能完成,但是随着时间的推移,我一直在想出大部分的事情。然而,这个问题对我来说完全没有意义。我为double'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赋值以便可以使用它?提前谢谢!
答案 0 :(得分:9)
在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);