c#switch语句有无法访问的代码警告



所以我的Switch语句似乎是错误的,但我不知道为什么。有人能帮忙吗?它说break语句是不可访问的代码

switch (collisionTable[collisionIndex]) //Collision behavior
{
case 0: //Passable tile
nextPos.y = 0;
return true;
break;
case 1: //Impassable tile
nextPos.y = 0;
return false;
break;
case 2: //Slope tile
if (direction == Vector3.forward)
{
nextPos.y = 0.5f;
terrainLevel = 1.5f;
}
if (direction == Vector3.back)
{
nextPos.y = -0.5f;
terrainLevel = 1.5f;
}
return true;
break;
default: //Fallback
return false;

并非所有情况下都需要break语句,因为返回总是执行的。

代码执行永远不会到达break语句,因此编译器所做的是发出警告,如果在return语句之后包含break语句则无法访问代码(但代码仍将编译(;

底线是,删除返回语句后的中断,警告将消失

不需要在return之后使用break,因为return意味着您从switch所在的任何函数返回到调用它的位置。

我修复了它。键入return后不需要break语句

最新更新