如何解决方法的无重载需要 1 个参数 C#
本文关键字:重载 参数 何解决 解决 方法 | 更新日期: 2023-09-27 18:35:59
我有一个带有数组的类,它是这样的。
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 个参数"。
我想你想做这样的事情:
string[] images = List.GetImages();
pictureBox1.ImageLocation = images[1];
在List.GetImages(1)
行上,您正在尝试调用 GetImages()
函数,当您的函数不带任何函数时,将1
作为参数传递。您的代码应如下所示:
string[] images = List.GetImages();
pictureBox1.ImageLocation = images[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];
}
您的getimages()
函数不带任何参数,并且您正在尝试传入 1。因此,除非您定义另一个采用int
参数(方法重载)的getimages()
函数,否则您将获得错误"no overload for method takes 1 arguments"
您可以通过以下方式重载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;
}