我知道这是基本知识,但是我找不到答案。我有一个应该返回不同类型游戏对象的函数。我喜欢使用switch方法来描述每种类型的东西。错误和发生的行显示在下面的代码中:
GameObject getElement(string type)
{
GameObject newGO;
switch(type)
{
case "A":
newGO= functionWhichReturnsGameObjectWithTypeA();
break;
case "B":
newGO= functionWhichReturnsGameObjectWithTypeB();
break;
}
return newGO; // error: Use of unassigned local variable 'newGO'
}
GameObject myGO = getElement("A");
答案 0 :(得分:3)
您需要在每个执行流程中为newGO
赋予一个值,因此有一个默认情况,如果type
参数应为"A"
或{{1 }}和"B"
绝不能为null,或者尽可能将其设置为null。
这应该有效:
newGO
或:
GameObject newGO;
switch(type)
{
case "A":
newGO= functionWhichReturnsGameObjectWithTypeA();
break;
case "B":
newGO= functionWhichReturnsGameObjectWithTypeB();
break;
default:
throw new ArgumentException("Unexpected argument");
}
答案 1 :(得分:0)
感谢@Stefan的评论,这可以解决问题:
GameObject newGO = null;