C# 在if/else块中更改变量时,错误表示该变量未赋值

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,

我尝试随机更改球的颜色,但是当我尝试使用颜色变量成为实心笔刷的颜色时,它表示未指定颜色。“未分配局部变量‘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,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);

这个答案很好,但它准确地说出了已经存在的答案,解释较少。我不太清楚为什么要添加它。这个答案很好,但它准确地说出了已经存在的答案,解释较少。我不太清楚为什么要添加它。