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