我对为什么这起作用感到困惑:
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#,如果这是菜鸟问题,对不起)。
最佳答案
底线
这是因为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?
摘要
我推荐更多的教程-随着时间的推移,它会变得清晰起来。祝好运!
关于c# - C#关于列表实例和成员上下文的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52195789/