我对为什么这样做感到困惑:
namespace ConsoleApp2
{
public class NameList
{
public void NameListGo()
{
List<string> listofNames = new List<string>();
listofNames.Add("Frank");
}
}
}
但这会产生一个错误,在当前上下文中找不到“ listofNames”:
namespace ConsoleApp2
{
public class NameList
{
List<string> listofNames = new List<string>();
listofNames.Add("Frank");
}
}
在这种情况下,方法“ NameListGo”的作用是什么。为了引用该实例的属性,必须在方法中包含一个实例吗? (我从一个漫长的周末开始学习C#,如果这是菜鸟问题,对不起。)
答案 0 :(得分:5)
这是因为listofNames.Add("Frank");
是一条指令,正如您在Methods (C# Programming Guide)中所看到的:
在C#中,每个执行的指令都是在方法的上下文中执行的。
在第一段listOfNames
中是一个局部变量。
在第二个摘录listOfNames
中作为成员变量。
更准确地说,在第二个片段listofNames
中是NameList
类的一个字段。
public class NameList
{
//This is a field
List<string> listofNames = new List<string>();
public void Method() {
//You need a method to interact with listOfNames
listofNames.Add("Frank");
}
}
请签出What is the difference between a member variable and a local variable?
我推荐更多教程-随着时间的流逝,它将变得更加清晰。祝你好运!