我需要知道如何將int轉換爲可空int。但是,我不斷收到一個錯誤「二進制運算符Equal沒有爲類型'System.Nullable`1 [System.Int32]'和'System.Int32'定義。」任何解決方案它需要是Microsoft SQL Server的可空int類型。將int轉換爲可爲空的int?
somevalue = Expression.Constant(something.GetValue(some,null).To<Nullable<System.Int32>>());
public static T To<T>(this object obj)
{
Type t = typeof(T);
Type u = Nullable.GetUnderlyingType(t);
if (u != null)
{
if (obj == null)
return default(T);
return (T)Convert.ChangeType(obj, u);
}
else
{
return (T)Convert.ChangeType(obj, t);
}
}'
什麼'something.GetValue'的返回類型?它看起來像你要做很多工作,應該更簡單... –
錯誤是編譯器錯誤還是運行時錯誤?我試圖用各種輸入來運行你的方法,我一直沒能得到任何錯誤。如果您遇到運行時異常,請提供堆棧跟蹤。 –
返回類型應該是int ?.問題是我得到通過一個int?這是來自數據庫的值,然後該函數返回一個int,然後我需要轉換回int ?.原因是因爲我試圖做一個動態查詢。另外somevalue是一個變種!不是int?並且必須永遠是一個變種,這是不能改變的,所以我不能像人們所建議的那樣施放。 – user2582770