2010-01-28 128 views
-1

System.ArgumentException: Object must be of type Int32.從int轉換成字節

在此代碼:

MyBO target = new MyBO() { x1 = 20 }; 

MyBO我有一個屬性:public byte x1 {get; set;}

有什麼不對?我試過MyBO target = new MyBO() { x1 = (byte)20 };但我得到了同樣的錯誤。 請幫忙。

謝謝!

+2

這是什麼語言?請添加到標籤列表中... – Galghamon 2010-01-28 18:15:03

+2

它似乎是C#,給定對象初始值設定項和'System.ArgumentException'。 – 2010-01-28 18:15:59

+1

你確定這是錯誤發生的地方嗎?我用類似的聲明做了一個類似的類,沒有任何問題。 – Aaron 2010-01-28 18:18:49

回答

0

你有沒有嘗試明確地轉換成一個字節?


MyBO target = new MyBO() { x1 = (byte) 20 };

+1

行,則問題是:如果我有一個驗證規則,如: [RangeValidator控件(0,RangeBoundaryType.Inclusive,20%,RangeBoundaryType.Inclusive,規則集= 「validate_x1」)] 公共字節X1 { GET; 集; } 如果我有MyBO my1 = new MyBO(){x1 = 20},我得到了那個錯誤。爲什麼? – qwerty 2010-01-28 18:21:40

+1

@qwerty,omg!請編輯你的問題,以包括這些細節.... – 2010-01-28 18:22:47

+0

我編輯了這個問題。 – qwerty 2010-01-28 18:23:45

3
MYBO target=new MyBO(); 
target.x1=Convert.ToByte(20); 
2

你確定錯誤來自該行?我運行此代碼沒有問題:

class MyBO 
{ 
    public byte x1 { get; set; } 
} 

// ... 
public static void Main(string[] args) 
{ 
    MyBO my1 = new MyBO() {x1 = 20}; 
    MyBO my2 = new MyBO() {x1 = (byte)20}; 
    MyBO my3 = new MyBO() {x1 = Convert.ToByte(20)}; 
} 
+0

那麼是什麼導致了錯誤? – qwerty 2010-01-28 18:36:22

+0

因此,發佈您的REAL代碼,因爲上面的代碼不會重現您的錯誤 – 2010-01-28 19:06:07