我在visual studio社区15中收到此错误,试图编译下面的代码。我创建了一个名为" PrintFirstElement"我试图将变量myArray作为方法的参数传递给我。我收到一个错误,即在此上下文中不存在名称PrintFirstElement。对我没有任何意义。任何帮助将不胜感激。
namespace ConsoleApplication6
{
class Arrays
{
public void PrintFirstElement(int[] a)
{
Console.WriteLine("The first element is {0}. /n", a[0]);
}
}
class Program
{
static void Main(string[] args)
{
int[] myArray = { 1, 2, 3, 4, 5 };
PrintFirstElement(myArray);
}
}
}
答案 0 :(得分:2)
您正试图从另一个班级PrintFirstElement
调用Arrays
班级中存在的Program
方法;要执行此操作,您需要实例化Arrays
类并使用实例名称限定方法调用,或者将PrintFirstElement
方法更改为static
并使用类本身的名称。
所以,要么这样做:
int[] myArray = { 1, 2, 3, 4, 5 };
var a = new Arrays(); // create an instance of the `Arrays` class
a.PrintFirstElement(myArray);
或者将您的方法更改为public static void PrintFirstElement(int[] a)
并将Main
中的来电更改为Arrays.PrintFirstElement(myArray);
。
答案 1 :(得分:0)
Rory.ap完全正确。我只想在他的回答中添加一些信息。当您将方法更改为静态时,此方法将被内存所知。因此,您不必为方法创建对象。