2015-01-03 107 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

相关问题