如何从(int)null
中获得0作为整数值。
编辑1:我想要创建一个函数,它将在它们各自的数据类型中返回null表示的默认值。
编辑2:如何在这个场景中使用默认。
(Int)值
其中值可以是null或任何整数值。我不知道在运行时值的数据类型。但是我要保证,值应该包含空值或整数值。
发布于 2010-01-19 19:59:24
可以使用Nullable结构
int value = new Nullable<int>().GetValueOrDefault();
您还可以使用default
关键字
int value = default(int);
第二版:
您需要一个接收任何类型参数的函数,因此将使用object。您的函数类似于DataRow
上的DataRow
扩展方法。
public static T GetValue<T>(object value)
{
if (value == null || value == DBNull.Value)
return default(T);
else
return (T)value;
}
使用该函数,如果您想要一个int (并且您期望值是一个int),您可以这样称呼它:
int result = GetValue<int>(dataRow["Somefield"]);
发布于 2010-01-19 20:02:31
可以使用default
关键字获取任何数据类型的默认值:
int x = default(int); // == 0
string y = default(string); // == null
// etc.
这也适用于泛型参数:
Bar<T> Foo<T>() {
return new Bar<T>(default(T));
}
如果有一个类型为object
的变量可能包含null
或int
类型的值,则可以使用可空类型和??运算符将其安全地转换为整数:
int a = 42;
object z = a;
int b = (int?)z ?? 0; // == 42
int c = (int?)null ?? 0; // == 0
发布于 2018-10-24 11:52:53
使用??
或空合并运算符或
示例:
int? a = null;
return a ?? 0; //this will return 0
这是C#中的一个新特性。如果操作数不是null,则返回左操作数;否则,返回右操作数.
https://stackoverflow.com/questions/2096619
复制相似问题