当前列表不在上下文中?

时间:2016-04-30 07:29:42

标签: c# unity3d switch-statement monodevelop

我创建了一个包含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。

0 个答案:

没有答案