小编kla*_*dze的帖子

指定的强制转换无效

我有这个功能检查当前值.当前值(第一个参数)为空或空时,它使用您传递的默认值(第二个参数)

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)

有人可以改进上面的代码片段吗?为什么编译器会抛出此错误?

此致,杰西

c# generics

5
推荐指数
1
解决办法
1659
查看次数

标签 统计

c# ×1

generics ×1