我需要知道如何将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