2015-01-03 38 views
-5

我有這是這樣的數組類..如何解決無過載方法需要1個參數C#

public class CardList 
{ 
    public string[] GetImages() { 
     // Create a new instance of a string array 
     string[] images = new string[108]; 
     images[1] = @"C:\Resources\ALLCARDS\YellowCards\0 Yellow.png"; 
     ... 
     ... 
     images[107] = @"C:\Resources\ALLCARDS\BlackCards\Draw4.png"; 

     return images; 
    } 
} 

而且我想數組調用另一個類,並將其分配給圖片框。這是我做的..

private void pictureBox16_Click(object sender, EventArgs e) 
{ 
    CardList List = new CardList(); 
    List.GetImages(); 

    pictureBox1.ImageLocation = List.GetImages(1); 
} 

但我在「List.GetImages(1);」下方有紅線,「那就是「沒有方法的重載需要1個參數」。

+0

'公共字符串[] GetImages()'沒有參數定義;你還沒有提供一種方法來獲取1圖像只有一個列表所有人 – Plutonix

+0

請注意,在C#中的數組從開始索引0而不是1 –

+4

這個問題似乎是脫離主題,因爲它是關於語言基礎的主題「方法」。我們期望獲得該語言的基本知識,因爲Stack Overflow不能替代書,類,教程或常識。 –

回答

1

我想你想要做這樣的事情:

string[] images = List.GetImages(); 
pictureBox1.ImageLocation = images[1]; 
+0

任何想法如何設置隨機圖像,而不是圖像[1]; – ExPlOiD

+1

@ZainulAriffin我想這個問題的範圍之外。 – dario

+1

@ZainulAriffin,你有沒有嘗試做一些研究?你必須使用Random類。 http://msdn.microsoft.com/library/system.random(v=vs.110).aspx – Andrew

1

在您List.GetImages(1)線,你想調用GetImages()功能,傳遞一個1作爲參數,當你的函數有沒有。你的代碼應該是這樣的:

string[] images = List.GetImages(); 
    pictureBox1.ImageLocation = images[1]; 
1

你得到這個錯誤是GetImages方法沒有任何參數的原因。見簽名:

public string[] GetImages() // nothing between() => no parameters 

該方法沒有參數,並返回一個數組。您可以使用0訪問該陣列中的第一個項目(在C#索引中是基於0的)。

string[] images = GetImages(); 
string first = images[0]; 

它總是最好檢查數組實際上有你想要得到的指數,你可以通過檢查做了Length

string[] images = GetImages(); 

if (images != null && images.Length > 0) 
{ 
    string first = images[0]; 
} 
0

getimages()功能不帶參數,你想所以除非你定義了另一個getimages()函數,它需要一個參數int(方法重載),你將得到錯誤"no overload for method takes 1 arguments"

-1

你可以覆蓋oad GetImages方法簡單地通過:

public string[] GetImages(int index) { 
    // Create a new instance of a string array 
    string[] images = new string[108]; 

    images[1] = @"C:\Resources\ALLCARDS\YellowCards\0 Yellow.png"; 
    ... 
    ... 
    images[107] = @"C:\Resources\ALLCARDS\BlackCards\Draw4.png"; 

    if(images.Length > index - 1) 
     return images[index]; 

    return null; 
} 
+1

所以如果'index'等於1000,你會得到一個美麗的錯誤。 ;) – Andrew

相關問題