我创建了一个包含List<string>
字段的静态类。在大多数情况下,在我尝试在我的一个方法中的switch语句中访问它之前,这一切都很好。 List<string>
最初的值为null,但我保证在此方法命中时它会有一些东西(额外检查if
因为嗯...它没有伤害到它!)
现场声明:
private static List<string> currentMenuItems;
我的方法:
public static string returnSelectedAttack()
{
GameObject menu = GameObject.Find ("MenuCanvas");
Image selector = null;
//Get the selector image
foreach (Image item in menu.GetComponentsInChildren<Image>())
{
if (item.tag.Equals ("MenuSelector"))
{
selector = item;
break;
}
}
if (selector != null && getPosition (selector.transform.position) != null && currentMenuItems != null)
{
switch (getPosition (selector.transform.position))
{
case "position1":
return currentMenuItems (0);
break;
case "position2":
return currentMenuItems (1);
break;
case "position3":
return currentMenuItems (2);
break;
case "position4":
return currentMenuItems (3);
break;
case "position5":
return currentMenuItems (4);
break;
case "position6":
return currentMenuItems (5);
break;
default:
return null;
break;
}
}
else
return null;
}
private static string getPosition(Vector2 coordinates)
{
try
{
return selectorPositions[coordinates];
}
catch
{
return null;
}
}
对于switch语句中的所有currentMenuItems
访问,都会返回错误“当前上下文中不存在名称currentMenuItems
”。这是奇怪的,因为1]它是同一个类中的一个字段,2]它在这个类中的其他地方使用而没有问题。
我已尝试过许多不同的事情要解决,例如实例化列表并用switch
语句替换if
语句,但它仍然无法找到它。如何让我的currentMenuItems
处于上下文中?
旁注:我在Unity / Monodevelop中创建了这个,所以这是使用.NET2。