Coding an array in a class library and make a call to it C# [closed]
I'm new to C#, so this may be a basic question. What I need to do is put an array such as the one below in a class library and then make a call to it. So I'd want the appropriate picture to appear via the class and this array. I know there's a much simpler way to make certain pictures appea开发者_JAVA百科r, but this is a requirement for the project. It's an asp.NET website in 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 (also in comment):
I'm trying to get the picture from the array to show up in an image box upon a button click like this:protected void Button1_Click(object sender, EventArgs e) {
Class1 name = new Class1();
this.Image1.ImageUrl = name.GetPic();
}
Obviously just the name.GetPic() isn't going to do anything, it's throwing an error actually.
EDIT2: Sorry for the confusion, I just realized I can edit and comment. I've got the array in the class properly setup, now I need to access it (read above edit).
Answered
string[] pictures = work.GetPictures();
Image1.ImageUrl = pictures[0];
is all that I needed to see, thanks Zyphrax
ok, it seems that you've put some effort into this.
I think you're looking for something like the sample below.
I've added comments to help you understand what's going on.
One of the classes in your class library:
// 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;
}
}
How to call the method on that class:
// Create a new instance of the HomeWork class
HomeWork work = new HomeWork();
// Call the GetPictures method
work.GetPictures();
Please ask your teacher to explain it into more detail.
We can't teach you years of programming experience in one SO question :)
EDIT: In response to your second question
Option 1: use the array that was returned by GetPictures:
HomeWork work = new HomeWork();
string[] pictures = work.GetPictures();
Image1.ImageUrl = pictures[0];
Image2.ImageUrl = pictures[1];
Image3.ImageUrl = pictures[2];
// etc..
Option 2: create an overload for GetPictures that accepts an index
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);
The samples above are to illustrate how C# works.
It would be inefficient to use it this way in a business application.
I can only add to this via an answer.
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";
}
}
This is how I've tried putting the array in a class. When it builds I get the error "not all code paths return a value". For a start you could help me get that working. And yes this is for school, and as far as I can tell this is how you learn programming if it's something the teacher didn't cover. I'm not asking you to write my code, I'm just stuck with it.
精彩评论