gpt4 book ai didi

c# - 对象的可空类型

转载 作者:行者123 更新时间:2023-12-02 11:53:04 25 4
gpt4 key购买 nike

使用 dotnet 2.0。下面的代码可以在风格上改进一下吗?

    private object GetObj_Version1(int? num)
{
return num ?? (object)DBNull.Value;
}

我觉得 Actor 阵容有点困惑。下面的版本 2 避免了强制转换,但它很冗长:

    private object GetObj_Version2(int? num)
{
object numObj;
if (num.HasValue)
numObj = num.Value;
else
numObj = DBNull.Value;

return numObj;
}

你能想出一种既短又避免 Actor 阵容的替代方案吗? TIA。

最佳答案

在这种情况下,强制转换在运行时不执行任何操作 - 它纯粹是为编译器而存在的。如果你真的讨厌它,也许:

    static readonly object NullObject = DBNull.Value;
private object GetObj_Version1(int? num)
{
return num ?? NullObject;
}

但我会自己留下。顺便说一句 - 因为无论如何你都要装箱,所以你可以省去重载,只使用 object - 那么你甚至不需要 static 字段:

    private object GetObj_Version1(object value)
{
return value ?? DBNull.Value;
}

关于c# - 对象的可空类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/828464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com