我目前正在用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。
答案 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()))
{}
}