2016-12-30 105 views
-3

我在Visual Studio社区15中尝试编译下面的代码时收到此错误。我创建了一个名为“PrintFirstElement”的方法,我试图将变量myArray作为参数传递给方法。我收到一个错误,说明PrintFirstElement的名称在此上下文中不存在。对我没有任何意义。任何帮助,将不胜感激。CS0103调用方法时出现错误消息

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); 
     } 
    } 
} 
+1

'PrintFirstElement'在另一个类中,您需要静态引用它或创建一个实例来获取它。 – BradleyDotNET

+1

与'/ n'不相关的错误应该是'\ n'(在Console.WriteLine调用中)?如果你甚至需要它('WriteLine'自动添加一个换行符) – UnholySheep

回答

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);

+0

感谢Rory非常有意义。我正在写一本书,里面有一个没有很好解释的细节,所以我看到了我的方式的错误。谢谢你的时间。 –

0

Rory.ap完全正确。我只是想在他的回答中添加一些信息。当您将方法更改为静态时,此方法将通过内存获知。所以你不必为你的方法创建对象。

+0

感谢您的额外洞察力。非常感激。 –

相关问题