2016-12-30 109 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

感謝您的額外洞察力。非常感激。 –

相關問題