在函数中使用列表

时间:2015-11-04 18:33:28

标签: c# list

我目前正在用c#开发一个小小的文本冒险,但我仍然对该语言很陌生,所以我遇到了一些问题。

例如,我使用List来保存农场中植物的名称。我不知道为什么我在这里收到错误:

public static void InitializeList()
    {
        List<string> plants = new List<string>();
        plants.Add("wheat");

    }
public static void plantCrop(string crop)
    {
        if (plants.Contains(crop.ToLower())) 
        {

        }
    }

该计划告诉我_plants_ doesn't exist in the current content

我可以在不从函数InitializeList()中删除List的情况下修复此问题吗?我在Main程序中首先调用List。

5 个答案:

答案 0 :(得分:2)

plants是一个局部变量。使其成为从其他方法访问它的类成员。

答案 1 :(得分:1)

Plants是方法中的局部变量,您无法通过不同的方法访问它。

答案 2 :(得分:1)

您的工厂列表存在于InitializeList上下文中。 如果你创建一个字段,你可以从另一个方法访问它。

private static List<string> plants;
public static void InitializeList()
{
    plants = new List<string>();
    plants.Add("wheat");
}
public static void plantCrop(string crop)
{
    if (plants.Contains(crop.ToLower())) 
    {
    }
}

答案 3 :(得分:0)

在方法plants中将InitializeList初始化为成员变量而不是局部变量。

List<string> plants = new List<string>();

答案 4 :(得分:0)

请将您的列表(植物)定义为全球。您可以在其他函数的函数中定义局部变量。

var plants = new List<string>();
public static void InitializeList()
{
   plants = new List<string>();
   plants.Add("wheat");

}
public static void plantCrop(string crop)
{
  if (plants.Contains(crop.ToLower())) 
   {}
 }