返回null或值c#

时间:2015-03-05 13:21:17

标签: c# null

我来自强大的Java背景,我很习惯这种代码:

Object o = foo();
if (o == null) {
    bar();
} else {
    somethingElse();
}

public Object foo() {
//code....
if (..) {
    return Object;
} else {
    return null;

但是c#不允许这样做。我想要一个函数,如果找到它就返回一个对象,如果没有这样的实例则返回null。在c#中使用它的方法是什么?

1 个答案:

答案 0 :(得分:1)

您是否尝试在C#中执行此操作?您发布的代码应该在C#中的工作方式完全相同,并且没有理由认为简单的空检查会有所不同。

然而,与Java不同,C#还提供了一种更惯用的处理空值的方法。 C#有??运算符,它与三元?运算符非常相似,但检查为null。

Object o = foo();
Object result = o ?? somethingElse();

如果foo()非空,则该代码段会调用result并将其分配给o,如果somethingElse()为空则调用o

请注意,对于值类型,与Java不同,C#具有可空类型的概念。在Java中,

int x = null;

无效。它在C#中也无效,但您可以创建一个可为空的int。这意味着值类型(在本例中为int),也可以将null作为值。

int? x = null;

这是有效的C#代码。