2013-12-18 66 views
0

我有一個名爲animal的類,它具有public string name,speciespublic Byte photoAnimal錯誤不能將類型byte []隱含轉換爲字節

在另一種形式中,我創建了一個名爲Simba的動物,我想設置Simba的值,但是當我想設置photoAnimal時出現錯誤。我用filestreambinaryreader來讀取數據,然後用filestream和二進制讀取器得到create byte[] imageData = binary數據。我不能設置Simba.photoAnimal = imageData,這裏是我的一些代碼:

animal Simba = new animal(); 
    string fileName = textBox5.Text; 
    byte[] ImageData; 
    fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); 
    br = new BinaryReader(fs);      
    ImageData = br.ReadBytes((int)fs.Length); 
    br.Close(); 
    fs.Close();  
    Simba.name = textBox1.Text; 
    Simba.species = textBox2.Text; 
    Simba.photoAnimal = ImageData; // error  
+2

編譯器錯誤告訴你什麼是錯的。當你將'byte []'賦值給'byte'變量時,你期望發生什麼? –

回答

7

的ImageData是一個byte []。因此,在動物類,取代

public Byte photoAnimal 

通過

public Byte[] photoAnimal. 
1

錯誤消息意味着它不能指定您ImageData(的byte[]類型)photoAnimal,這似乎是類型byte

在您的班級animal中,將photoAnimal的類型更改爲數組:

public class animal 
{ 
    public byte[] photoAnimal; 
} 

作爲一個方面說明,您顛倒了命名約定。變量應該位於CamelCase和UpperCamelCase中的類中。而不是在C#中animal Simba = new animal(),通常使用Animal simba = new Animal()

+0

+1,因爲這不僅僅是這個工作,它提到了命名約定,避免了C#開發人員的痛苦。 – Magus

相關問題