2010-04-14 57 views
0

我是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

+1

你的問題是什麼? – Alex 2010-04-14 02:21:44

+0

該項目的要求?這是功課嗎? – 2010-04-14 03:06:18

+0

注意:'string [3]'是一個包含3個元素(0-2)的數組,而不是最後一個索引爲3的數組。這是一個特別容易的錯誤,如果您來自VB.NET,另一種方式。 – Powerlord 2010-04-14 18:57:22

回答

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#如何工作。
在業務應用程序中以這種方式使用它會是低效的。

+0

我真的很感謝幫助,只是一件事。一旦我打電話給班級,我該如何指定數組(0,1,2或3)上的哪個圖片(字符串)將被使用?我想象它會在工作中.GetPictures();括號之間,但我不確定的語法。 – eddy 2010-04-15 02:17:43

+0

我想從數組的圖片在在一個按鈕的圖像框,顯示點擊這樣的: 保護無效的button1_Click(對象發件人,EventArgs的) { Class1的名稱=新的Class1() ; this.Image1.ImageUrl = name.GetPic(); } 顯然只是name.GetPic()不會做任何事情,它實際上會拋出一個錯誤。 – eddy 2010-04-15 02:28:32

+0

我將它複製到我的文章中,它不會將代碼分隔開。 – eddy 2010-04-15 02:29:55

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

這就是我已經嘗試把數組放在類中。當它生成時,我得到錯誤「不是所有的代碼路徑都返回一個值」。首先你可以幫助我做到這一點。是的,這是爲了學校,並且據我所知,這是你如何學習編程,如果這是老師沒有涵蓋的東西。我不是要求你寫我的代碼,我只是堅持下去。

+0

您應該可以將其編輯爲問題,而不是將其作爲答案發布。很多人只會看看這個問題,看看他們是否可以回答這個問題,他們可能會錯過答案中給出的這些額外信息。 – sth 2010-04-14 18:26:23

+0

上面的方法ArrayMethod指出它返回一個字符串。你的方法不包含return語句。它也需要一個字符串參數。我不確定你使用的是什麼。你的數組被定義爲長度爲3,但你正試圖向它添加4個項目。你會得到一個索引越界異常。 – 2010-04-14 18:27:50

相關問題