开发者

Coding an array in a class library and make a call to it C# [closed]

开发者 https://www.devze.com 2022-12-27 00:16 出处:网络
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical andcannot be reasonably answered in its current form. For help clari
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 12 years ago.

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消