在我們的應用程序的深處,有一個嘗試執行從一個字符串轉換爲可空的int與Convert.ChangeType(value, castType)
。在這種情況下,值如下:無法將字符串的類型更改爲int?
value: "00010"
castType: Nullable<System.Int16>
的問題是,我收到以下錯誤
Invalid cast from 'System.String' to 'System.Nullable`1[[System.Int16}
我有(顯然不正確地)認爲這是類似於鑄造或Convert.ToInt16 ()但我通過測試以下兩行代碼驗證了它不一樣。
Int16 t = Convert.ToInt16("00010");
object w = Convert.ChangeType("00010", typeof(short?));
正如您可能會懷疑的那樣,第一次成功,而第二次失敗並出現上述錯誤消息。
是否可以通過調整來使用ChangeType或者我應該查看一個重構?
我最終根據李的信息nk:'Convert.ChangeType(value,Nullable.GetUnderlyingType(castType)?? castType);' – McArthey