如何检查字段是否为空?

时间:2014-02-20 09:53:20

标签: c#

我是 C#的新手(我来自Java),我有以下疑问。

在我正在工作的应用程序中,我在代码中找到了类似的内容:

if (!String.IsNullOrEmpty(u.nome))

此代码只检查u对象的nome字段是否为空\ null字符串。

好的,这对我来说非常清楚,但如果字段不是字符串但是普通的int,我该怎么做呢?

5 个答案:

答案 0 :(得分:6)

int?是一个可以为空的整数。只需将其与null

进行比较
if (u.NullableInt != null)

或使用Nullable<T>.HasValue属性(这是品味问题,但我发现此选项更具可读性)

if (u.NullableInt.HasValue)

注意:如果您询问的是int,那么它是value type,并且不能有null值。整数的默认值是0(但你不能说它是否被赋值给变量,这就是为什么引入了可空类型)。

答案 1 :(得分:0)

您可以使用几种不同的类型,但最常见的是:

if(someVar != null) 

如果您来自数据库,这将特别有用

if(someVar != DBNull.Value)

答案 2 :(得分:0)

int是一个不可为空的值类型,因此无论如何它都不能为null。但对于可以为空的值类型(例如int?bool?)和引用类型(任何类),您只需与null进行比较

if(myObj != null) {....}

答案 3 :(得分:0)

如果它是像int这样的值类型,即使你没有初始化它也会有一个init值。对于int,它是0。

对于参考类型我认为您可以检查

if(someVar !=null)

您可以看到此http://msdn.microsoft.com/en-us/library/4d43ts61(v=vs.90).aspx

答案 4 :(得分:0)

您可以使用此机制进行检查

static bool CheckIfNullOrDefault<T>(T value)
{
    return object.Equals(value, default(T));
}

double d = 0;
CheckIfNullOrDefault(d); // true
MyClass c = null;
CheckIfNullOrDefault(c); // true

在上面的代码中,您发现T是引用类型。这里将它与null进行比较,如果它有一些值,则说布尔值为false,对于double,默认值(T)为0d,它会被验证。