因此,我正在用 C# 创建一个程序,该程序将读取用户提供的 Income 和 Outgo,并将它们存储在 2 个列表中。当请求时,程序必须显示存储在列表中的值。问题是,列表位于一个方法中,而用于显示值的foreach在另一个方法中,每次我尝试调用列表的名称时,编译器都会对我说:"该名称在当前上下文中不存在"。欢迎任何帮助。
这是创建列表的方法:
public void ListIncome()
{
Console.Clear();
Console.Write("Income: ");
List<double> Income = new List<double>();
Income.Add(Convert.ToDouble(Console.ReadLine()));
}
这是显示列表的方法:
public void ShowList()
{
foreach (double value in Income)
{
Console.WriteLine(value);
}
Console.ReadKey();
}
这是因为您的Income
变量不在方法范围内ListIncome
因此,您需要将其移动到类级别范围才能被其他成员方法访问。
您需要创建一个字段列表,以便也可以在填充它的方法之外访问它:
public class YourClass
{
List<double> Income = new List<double>(); // field added
public void ListIncome()
{
Console.Clear();
Console.Write("Income: ");
Income.Add(Convert.ToDouble(Console.ReadLine()));
}
public void ShowList()
{
foreach (double value in Income)
{
Console.WriteLine(value);
}
Console.ReadKey();
}
}
现在它应该可以在这些方法中访问,并且您的方法也将在同一个类中,以便在这种情况下像上面一样工作。
您不能从另一个方法调用封装在方法中的变量,因此,您必须在类级别声明它,以便它的所有方法都可以访问所述变量
private List<double> Income = new List<double>();
public void ListIncome()
{
Console.Clear();
Console.Write("Income: ");
Income.Add(Convert.ToDouble(Console.ReadLine()));
}
public void ShowList()
{
foreach (double value in Income)
{
Console.WriteLine(value);
}
Console.ReadKey();
}
所以你更了解
A
是一个局部变量。它不能从其他方法访问,只能在method()
内部访问
public void method()
{
int A = 0;
}
A
现在是一个类级变量,类的所有方法都可以访问它,因为它是在类中声明的,而不是封装(仅限于方法(在方法中
public class SomeClass
{
int A = 0;
public method()
{
int X = A / 5;
}
}