在类库中编码数组并调用它C#

时间:2010-04-14 02:15:09

标签: c# class arrays

我是C#的新手,所以这可能是一个基本问题。我需要做的是在类库中放置一个如下所示的数组,然后调用它。所以我希望通过类和这个数组出现适当的图片。我知道有一种更简单的方法可以显示某些图片,但这是项目的要求。它是C#中的asp.NET网站。

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";

编辑(也在评论中):
我正试图从数组中获取图片,以便在按下单击按钮时显示在图像框中:

protected void Button1_Click(object sender, EventArgs e) { 
   Class1 name = new Class1(); 
   this.Image1.ImageUrl = name.GetPic(); 
}

显然只是name.GetPic()不会做任何事情,它实际上是在抛出一个错误。

EDIT2:对不起,我只是意识到我可以编辑和评论。我已经在课堂上正确设置了阵列,现在我需要访问它(阅读上面的编辑)。

回答

string[] pictures = work.GetPictures();
Image1.ImageUrl = pictures[0];

是我需要看到的一切,谢谢Zyphrax

2 个答案:

答案 0 :(得分:1)

好吧,看来你已经付出了一些努力 我想你正在寻找类似下面的样本。

我添加了评论,以帮助您了解正在发生的事情。

您的类库中的一个类:

// 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#的工作原理 在业务应用程序中以这种方式使用它是低效的。

答案 1 :(得分:0)

我只能通过回答添加到此。

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";
        }
}

这就是我尝试将数组放入类中的方法。当它构建时,我得到错误“并非所有代码路径都返回一个值”。首先,你可以帮助我实现这一目标。是的,这是针对学校的,据我所知,这就是你如何学习编程,如果它是教师没有涵盖的东西。我不是要你写我的代码,我只是坚持下去。