還有的通過爲運營商,這是您使用的是什麼的問題明確地投對象直接
MyClass.indoorColor = (System.Drawing.Color)parsedObject;
或安全投法兩種方式。如果parsedObject不是安全大小寫將返回null的正確類型,則直接強制轉換將拋出InvalidCastException。但是,null不是結構的有效值,因此也是錯誤消息。
對此有兩種方法,都涉及到使用可空類型。
甲空類型是一個包裝輪結構類型,其允許值設定爲另外空並通過任一長格式System.Nullable<System.Drawing.Color>
或短格式僅僅是一個指定?上式結束System.Drawing.Color?
所以要麼改變indoorColor你的類型定義爲System.Drawing.Color?
,然後做
MyClass.indoorColor = parsedObject as System.Drawing.Color?;
或可替代選擇你希望在一個不兼容的類型的情況下,使用默認值(我將在這裏使用Transparent)並使用以下語法;
MyClass.indoorColor = parsedObject as System.Drawing.Color? ??
System.Drawing.Color.Transparent;
的??符號表示使用左側的值,除非它是null
否則使用右側的值;
parsedObject的類型是什麼? – Saleh 2012-01-13 09:26:31
你能描述一下你如何獲得'parsedObject',它的類型是什麼,你爲什麼期望它成功地轉換成System.Drawing.Color? – GolfWolf 2012-01-13 09:27:24