在类库中编写数组并对其进行调用C#
我是C#的新手,因此这可能是一个基本问题。我需要做的是在类库中放置一个如下所示的数组,然后对其进行调用。所以我想通过类和这个数组来显示合适的图片。我知道有一种更简单的方式来制作某些图片,但这是该项目的一项要求。这是一个C#中的asp.NET网站。在类库中编写数组并对其进行调用C#
string[] PictureArray;
PictureArray = new string[3];
PictureArray[0] = "~/pics/grl.jpg";
PictureArray[1] = "~/pics/pop.jpg";
PictureArray[2] = "~/pics/str.jpg";
PictureArray[3] = "~/pics/unk.jpg";
EDIT(也评论):
我想从数组的图片在点击一个按钮像这样在图像框中显示出来:
protected void Button1_Click(object sender, EventArgs e) {
Class1 name = new Class1();
this.Image1.ImageUrl = name.GetPic();
}
显然只是name.GetPic()不会做任何事情,它实际上会抛出一个错误。
编辑2:对不起,我刚刚意识到我可以编辑和评论。我已经正确设置了类中的数组,现在我需要访问它(请参阅上面的编辑)。
回答
string[] pictures = work.GetPictures();
Image1.ImageUrl = pictures[0];
是一切,我需要看到,由于Zyphrax
好的,看来你已经付出了一些努力。
我认为你正在寻找类似下面的例子。
我已添加评论以帮助您了解正在发生的事情。
一个在你的类库中的类:
// Define a class called HomeWork, make it accessible to other
// classes in other namespaces
public class HomeWork {
// Define a method called GetPictures, no incoming arguments,
// returns a string[]
public string[] GetPictures() {
// Create a new instance of a string array
string[] pictures = new string[4];
// Fill the string array with a couple of strings
pictures[0] = "~/pics/grl.jpg";
pictures[1] = "~/pics/pop.jpg";
pictures[2] = "~/pics/str.jpg";
pictures[3] = "~/pics/unk.jpg";
// Return the string array
return pictures;
}
}
如何调用这个类的方法:
// Create a new instance of the HomeWork class
HomeWork work = new HomeWork();
// Call the GetPictures method
work.GetPictures();
请向你的老师把它解释成更详细。
我们不能教你一个SO问题:)
编辑多年的编程经验:在回答你的第二个问题
选项1:使用是由GetPictures返回的数组:
HomeWork work = new HomeWork();
string[] pictures = work.GetPictures();
Image1.ImageUrl = pictures[0];
Image2.ImageUrl = pictures[1];
Image3.ImageUrl = pictures[2];
// etc..
选项2:创建过载用于接受一个索引GetPictures
public string[] GetPictures() {
// This method remains unchanged
}
public string[] GetPictures(int index) {
// Get the string array from GetPictures
string[] pictures = GetPictures();
// Return a specific index
return pictures[index];
// As you can see, this method might be
// dangerous to use, because someone could
// ask for an invalid index causing an
// IndexOutOfRangeException
}
HomeWork work = new HomeWork();
Image1.ImageUrl = work.GetPictures(0);
Image2.ImageUrl = work.GetPictures(1);
Image3.ImageUrl = work.GetPictures(2);
以上示例旨在说明C#如何工作。
在业务应用程序中以这种方式使用它会是低效的。
我真的很感谢帮助,只是一件事。一旦我打电话给班级,我该如何指定数组(0,1,2或3)上的哪个图片(字符串)将被使用?我想象它会在工作中.GetPictures();括号之间,但我不确定的语法。 – eddy 2010-04-15 02:17:43
我想从数组的图片在在一个按钮的图像框,显示点击这样的: 保护无效的button1_Click(对象发件人,EventArgs的) { Class1的名称=新的Class1() ; this.Image1.ImageUrl = name.GetPic(); } 显然只是name.GetPic()不会做任何事情,它实际上会抛出一个错误。 – eddy 2010-04-15 02:28:32
我将它复制到我的文章中,它不会将代码分隔开。 – eddy 2010-04-15 02:29:55
我只能通过一个答案添加到此。
public class Class1
{
public string ArrayMethod (string ArrayMethod)
{
string[] PictureArray;
PictureArray = new string[3];
PictureArray[0] = "~/pics/grl.jpg";
PictureArray[1] = "~/pics/pop.jpg";
PictureArray[2] = "~/pics/str.jpg";
PictureArray[3] = "~/pics/unk.jpg";
}
}
这就是我已经尝试把数组放在类中。当它生成时,我得到错误“不是所有的代码路径都返回一个值”。首先你可以帮助我做到这一点。是的,这是为了学校,并且据我所知,这是你如何学习编程,如果这是老师没有涵盖的东西。我不是要求你写我的代码,我只是坚持下去。
您应该可以将其编辑为问题,而不是将其作为答案发布。很多人只会看看这个问题,看看他们是否可以回答这个问题,他们可能会错过答案中给出的这些额外信息。 – sth 2010-04-14 18:26:23
上面的方法ArrayMethod指出它返回一个字符串。你的方法不包含return语句。它也需要一个字符串参数。我不确定你使用的是什么。你的数组被定义为长度为3,但你正试图向它添加4个项目。你会得到一个索引越界异常。 – 2010-04-14 18:27:50
你的问题是什么? – Alex 2010-04-14 02:21:44
该项目的要求?这是功课吗? – 2010-04-14 03:06:18
注意:'string [3]'是一个包含3个元素(0-2)的数组,而不是最后一个索引为3的数组。这是一个特别容易的错误,如果您来自VB.NET,另一种方式。 – Powerlord 2010-04-14 18:57:22