2017-09-01 178 views
2

我正在尋找很好的語法來提供默認值的情況下爲空。我習慣於在API中使用Optional而不是null,並且想知道C#的更好的可空類型是否具有相同的類型?相當於Java的Optional.orElse C#

自選

Optional<String> x = Optional<String>.absent(); 
String y = x.orElse("NeedToCheckforNull"); //y = NeedToCheckforNull 

@nullable

String x = null; 
String y = x == null ? "NeedToCheckforNull" : x ; //y = NeedToCheckforNull 

我怎麼會做出上述多在C#可讀?

Javascript會允許y = x | 「NeedToCheckforNull」

+2

注意:字符串不是「可空類型」...它只是常規引用類型,可空類型將是'int?'。 –

回答

3

C#有特殊Nullabel<>類型和使用 .GetValueOrDefault() 可以作爲int?decimal?等使用, 這些可以提供一個默認值T GetValueOrDefault(T defaultValue)

and ?? al因此適用於像上面的漫遊者那樣的可空類型。 string x = null; Console.WriteLine(x ?? "NeedToCheckforNull");