2016-04-12 10 views
-2

In C# 6, gibt es den neuen Null Conditional Operator, etwa so:Null Conditional Operator in C# 5

var name = p?.FirstName; 

Was können wir in C# 5 verwenden, damit wir müssen auf nicht zurückgreifen:

var name = null; 
if(p != null) 
    name = p.FirstName; 
+2

'var name = p = null? p.FirstName: null; '? –

+1

Eine Erweiterungsmethode, aber das spart nicht viel Tipparbeit. –

+7

Der Grund, warum der Operator zu C# 6 hinzugefügt wurde, war, dass es in C# 5 keine einfache Syntax gab. Wenn dies der Fall gewesen wäre, hätte das Feature nicht hinzugefügt werden müssen. –

Antwort

-1

Lashane hat die gleiche Idee, die ich tat. Die Verwendung eines Bedingungsoperators kann Ihnen Zeit sparen

Die Grundidee ist, dass Sie bewerten, ob etwas wahr oder falsch ist, und geben Sie die Werte an, die Sie für beides eingeben möchten.

var name = p != null ? p.FirstName : null; 

Die oben sagt: "! (?) Wenn p = null, bedingt auf p.FirstName wenn wahr, null, wenn false"

https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.90).aspx

+1

FYI, das heißt der Bedingungsoperator. Ternary ist ein Board-Name, der für jeden Operator mit 3 Operanden gilt. Es stellt sich heraus, dass dies der einzige in C# ist. – juharr

+0

Danke! Ich bearbeitete meinen Beitrag und fügte einen Link zur Microsoft-Site für diesen – oppassum

+1

hinzu. Es ist erwähnenswert, dass "?." Eine atomare Operation ist, während der bedingte Operator dies nicht ist. –