我怎样才能得到0作为整数值(int)null.
编辑1:我想创建一个函数,它将在各自的数据类型中返回null表示的默认值.
编辑2: 我如何在这种情况下使用默认值.
(INT)值
其中Value可以为null或任何整数值.我不知道运行时的数据类型.但我会保证Value应该只包含null或Integer值.
dtb*_*dtb 37
您可以使用default关键字获取任何数据类型的默认值:
int x = default(int); // == 0
string y = default(string); // == null
// etc.
Run Code Online (Sandbox Code Playgroud)
这也适用于通用参数:
Bar<T> Foo<T>() {
return new Bar<T>(default(T));
}
Run Code Online (Sandbox Code Playgroud)
如果你有一个object可能包含的类型的变量null或类型的值int,你可以使用可空类型和?? 运算符将其安全地转换为整数:
int a = 42;
object z = a;
int b = (int?)z ?? 0; // == 42
int c = (int?)null ?? 0; // == 0
Run Code Online (Sandbox Code Playgroud)
Pie*_*ant 25
您可以使用Nullable结构
int value = new Nullable<int>().GetValueOrDefault();
Run Code Online (Sandbox Code Playgroud)
您也可以使用default关键字
int value = default(int);
Run Code Online (Sandbox Code Playgroud)
第二次编辑后:
您需要一个接收任何类型参数的函数,因此将使用对象.你的功能类似于a上的Field<T>扩展方法DataRow
public static T GetValue<T>(object value)
{
if (value == null || value == DBNull.Value)
return default(T);
else
return (T)value;
}
Run Code Online (Sandbox Code Playgroud)
使用该函数,如果你想要一个int(并且你希望值是一个int),你可以这样称它:
int result = GetValue<int>(dataRow["Somefield"]);
Run Code Online (Sandbox Code Playgroud)