如果对象不为null,如何将属性值分配给var ONLY

Bla*_*man 5 c# null

在我的代码中,是否有一个简写,我可以使用它来为一个对象的属性的值赋值变量,如果该对象不为null?

string username = SomeUserObject.Username;     // fails if null
Run Code Online (Sandbox Code Playgroud)

我知道我可以像if(SomeUserObject!= null)那样进行检查,但我想我看到了这种测试的简写.

我试过了:

string username = SomeUserObject ?? "" : SomeUserObject.Username;
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

小智 7

在 c# 6.0 中你现在可以这样做

string username = SomeUserObject?.Username;
Run Code Online (Sandbox Code Playgroud)

如果 SomeUserObject 为 null,则 username 将设置为 null。如果你想让它得到值“”,你可以这样做

string username = SomeUserObject?.Username ?? "";
Run Code Online (Sandbox Code Playgroud)


Ant*_*ram 4

第二个的语法有点不对。

string name = SomeUserObject != null ? SomeUserObject.Username : string.Empty;
Run Code Online (Sandbox Code Playgroud)