我有这个功能检查当前值.当前值(第一个参数)为空或空时,它使用您传递的默认值(第二个参数)
public static T ZeroNull<T>(object currentValue, T defaultValue)
{
if (currentValue.Equals(DBNull.Value))
return (T)defaultValue;
else if (currentValue.Equals(string.Empty))
return (T)defaultValue;
else
return (T)currentValue;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,部分...但是当我使用这样的代码时,它会抛出" 指定的强制转换无效...... "
float currValue = 20.1f;
int i = ZeroNull<int>(currValue, 0); // Specified cast is not valid
int i = ZeroNull<int>("10", 0); // Specified cast is not valid
Run Code Online (Sandbox Code Playgroud)
有人可以改进上面的代码片段吗?为什么编译器会抛出此错误?
此致,杰西