C# 在if/else块中更改变量时,错误表示该变量未赋值
我尝试随机更改球的颜色,但是当我尝试使用颜色变量成为实心笔刷的颜色时,它表示未指定颜色。“未分配局部变量‘ballColour’的使用”C# 在if/else块中更改变量时,错误表示该变量未赋值,c#,if-statement,unassigned-variable,C#,If Statement,Unassigned Variable,我尝试随机更改球的颜色,但是当我尝试使用颜色变量成为实心笔刷的颜色时,它表示未指定颜色。“未分配局部变量‘ballColour’的使用” xPos=xPos+GAP\u大小; int color=rand.Next(1,40); 彩色球; 如果(color>=1&&color=10&&color=20&&color=30&&color编译器不知道您的if/else块是全包的,因此它警告说,ballColour可能是未分配的。只需将rand.Next(1,40);简单更改为rand.Next(1,
xPos=xPos+GAP\u大小;
int color=rand.Next(1,40);
彩色球;
如果(color>=1&&color=10&&color=20&&color=30&&color编译器不知道您的if/else块是全包的,因此它警告说,ballColour
可能是未分配的。只需将rand.Next(1,40);
简单更改为rand.Next(1,40);
而不更新if/else块,它可能不是
补救措施1:初始化为某个对象
Color ballColour = Color.White;
补救措施2:使用else:
...
else //if (colour == 40)
{
ballColour = Color.Purple;
}
这允许编译器“看到”为任何和所有情况设置的值
补救措施3:以上所有措施
初始化为第一个值并跳过第一个测试以减少代码:
Color ballColour = Color.Blue;
if (colour >= 10 && colour <= 19)
...
else
{
ballColour = Color.Purple;
}
Color ballColour=Color.Blue;
if(color>=10&&color编译器不知道您的if/else块是全包的,因此警告说,ballColour
可能是未分配的。只需简单更改为rand.Next(1,40);
而不更新if/else块,它可能不是
补救措施1:初始化为某个对象
Color ballColour = Color.White;
补救措施2:使用else:
...
else //if (colour == 40)
{
ballColour = Color.Purple;
}
这允许编译器“看到”为任何和所有情况设置的值
补救措施3:以上所有措施
初始化为第一个值并跳过第一个测试以减少代码:
Color ballColour = Color.Blue;
if (colour >= 10 && colour <= 19)
...
else
{
ballColour = Color.Purple;
}
Color ballColour=Color.Blue;
如果(color>=10&&color这里的问题是,在执行期间和执行下面代码行时,有可能不满足任何if条件,变量“ballColour”可能会被取消分配
SolidBrush-ballColourBrush=new SolidBrush(ballColour);
这里的问题是,在执行过程中,如果没有满足任何条件,那么在执行下面的代码行时,变量“ballColour”可能会被取消赋值
SolidBrush-ballColourBrush=新的SolidBrush(ballColour);
这个答案很好,但它准确地说出了已经存在的答案,解释较少。我不太清楚为什么要添加它。这个答案很好,但它准确地说出了已经存在的答案,解释较少。我不太清楚为什么要添加它。