2016-12-02 2 views
0

Ich bin auf der Suche nach einem Short-Hand für die Rückkehr auf True. Der Beispielcode, erklärt ii besser:Short-Hand für die Rückkehr auf True

if(error == true) 
{ 
    return; 
} 

ich um eine kurze Hand Version des Codes zu fragen oben, im Grunde so etwas wie:

error?return; 

... oder ...

error?.return; 

... oder ...

error||return; 

... oder was auch immer. Ihr habt die Idee und nein, keine davon funktioniert.

Danke euch allen.

+3

Und was würden Sie erhalten, indem Sie es auf eine Zeile reduzieren? Anders als machen es eher wie Bash aussehen und weniger wie C#, lol ... – code4life

+2

Es ist mir schwer zu verstehen, warum die Leute lieben, mit True/False zu vergleichen – Danh

Antwort

2

Ich denke, es wird nicht viel einfacher als eine leichte Reduktion auf Ihren eigenen Code.

Vielleicht:

if(error) return; 
+0

auch den Variablennamen Fehler in etwas wie "a", die Sie speichern wird eine erstaunliche 4 Zeichen – meganaut

+0

(Auch ich persönlich empfehle die Verwendung von Klammern {}, sonst werden Sie eines Tages enden mit: if (Fehler) zurückgeben; Console.WriteLine ("Fehler aufgetreten"); – Monza

+0

Yep. Ich habe das Die Idee ist, in der Lage zu sein, einfache Befehle (nicht nur eine Rückkehr) zu einem booleschen Flag in einer einzelnen Zeile zu verbinden.Einfacher zu lesen, das ist alles, zuckerfreie Syntax. – Lara

1

Der ternäre Operator ?: nicht für die Ablaufsteuerung ausgelegt ist, ist es nur für die bedingte Zuweisung ausgelegt. Wenn Sie den Ablauf Ihres Programms steuern möchten, verwenden Sie eine Kontrollstruktur wie if/else.

Der ternäre Operator soll eine Variable mit dem Ergebnis des Ausdrucks initialisieren. Zur Compile-Zeit übersetzt der C# -Compiler den ternären Ausdruck in Zweig Aussagen

?. ist ein neuer Null-Conditional Operator eingeführt in C 6.0 #

So ist der beste Ansatz wäre

if(error) return 
+0

Der bedingte (auch ternäre) Operator wird aus dem gleichen Grund nicht funktionieren, weil viele der Vorschläge des OP nicht funktionieren werden, 'return' ist eine Aussage, kein Ausdruck. Es kann nicht verwendet werden, wenn ein Ausdruck erwartet wird (Bedingungsoperator, Nullbedingungsoperator, Boolescher Operator usw.). –

+0

Yup !! @mikez Ich habe Ihren Punkt –

+0

Ich hatte auf etwas wie 'OnEventHandler? .Invoke (...)', die ich finde, ist lesbarer, dass die Überprüfung aller Event-Handler vor der Verwendung Null. – Lara

0
if(error == true) 
{ 
    return; 
} 

error Angenommen ist ein boolean Sie können es auf diese Weise verkürzen:

if (error) return; 
-2

Bitte versuchen Sie es unten,

Boolean returnvalue = error==true? true : false; 

oder

Boolean returnvalue = error ? true : false; 

Sie mich bitte, wenn sie für Sie gearbeitet.

Danke!

+0

Warum gibt das statt nur Fehler zurück? Fehler zurückgeben; –

+0

es wird nie einen leeren Wert zurückgeben, so dass Sie keinen Fehler dafür behandeln müssen, andernfalls müssen Sie den Standardwert auf false setzen, was nicht gut ist. –

Verwandte Themen