使用dotnet 2.0.以下代码可以改进风格吗?
private object GetObj_Version1(int? num)
{
return num ?? (object)DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)
演员看起来有点乱.下面的版本2避免了演员阵容,但其长篇大论:
private object GetObj_Version2(int? num)
{
object numObj;
if (num.HasValue)
numObj = num.Value;
else
numObj = DBNull.Value;
return numObj;
}
Run Code Online (Sandbox Code Playgroud)
你能想到一个既短又避免演员的替代方案?TIA.
在这种情况下,强制转换在运行时不执行任何操作 - 它完全适用于编译器.如果你真的讨厌它,也许:
static readonly object NullObject = DBNull.Value;
private object GetObj_Version1(int? num)
{
return num ?? NullObject;
}
Run Code Online (Sandbox Code Playgroud)
但我会自己离开.顺便说一句 - 因为无论如何你要打包它,你可以免除过载,只需要工作object- 那么你甚至不需要这个static领域:
private object GetObj_Version1(object value)
{
return value ?? DBNull.Value;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |