2016-12-02 3 views
0

Je cherche un raccourci pour le retour sur vrai. Le code exemple explique ii mieux:Court-main pour le retour sur vrai

if(error == true) 
{ 
    return; 
} 

Je demande d'une version sténographique du code ci-dessus, au fond quelque chose comme:

error?return; 

... ou ...

error?.return; 

... ou ...

error||return; 

... ou autre. Vous avez l'idée et non, personne ne travaille.

Merci à tous.

+3

Et qu'obtiendriez-vous en le réduisant à une ligne? Autre que de le faire ressembler plus à bash et moins comme C#, lol ... – code4life

+2

Il est difficile de comprendre pourquoi les gens aiment comparer avec vrai/faux – Danh

Répondre

2

Je pense qu'il n'est pas beaucoup plus simple qu'une légère réduction sur votre propre code.

Peut-être:

if(error) return; 
+0

également changer l'erreur de nom de variable à quelque chose comme "un" qui vous sauvera un étonnant 4 caractères – meganaut

+0

(Aussi, je recommande personnellement d'utiliser des parenthèses {} sinon vous finirez un jour avec: si (erreur) retour; Console.WriteLine ("Erreur survenue"); – Monza

+0

Oui, j'ai compris L'idée est de pouvoir relier des commandes simples (pas seulement un retour) à un drapeau booléen sur une seule ligne, plus facile à lire, c'est tout, plus de syntaxe sans sucre. – Lara

1

L'opérateur ternaire ?: est pas conçu pour le flux de contrôle, il est conçu uniquement pour l'attribution conditionnelle. Si vous devez contrôler le flux de votre programme, utilisez une structure de contrôle, telle que if/else.

L'opérateur ternaire doit initialiser une variable avec le résultat de l'expression. Au moment de la compilation, le compilateur C# traduit l'expression ternaire dans les états de branche

?. est un nouvel opérateur Null-conditionnelle introduite en C# 6.0

Donc, la meilleure approche serait

if(error) return 
+0

L'opérateur conditionnel (alias ternaire) ne fonctionnera pas pour la même raison que la plupart des suggestions de l'OP ne fonctionneront pas, 'return' est une déclaration, pas une expression. Il ne peut pas être utilisé lorsqu'une expression est attendue (opérateur conditionnel, opérateur null-conditionnel, opérateur booléen, etc.). –

+0

Yup !! @mikez J'ai obtenu votre point –

+0

J'espérais quelque chose comme 'OnEventHandler? .Invoke (...)' que je trouve plus lisible que null vérifiant chaque gestionnaire d'événement avant utilisation. – Lara

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

error est un booléen, vous pouvez raccourcir cette façon:

if (error) return; 
-2

S'il vous plaît essayer ci-dessous,

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

ou

Boolean returnvalue = error ? true : false; 

S'il vous plaît laissez-moi savoir si son travaillé pour vous.

Merci!

+0

Pourquoi faire cela au lieu de retourner juste erreur? erreur de retour; –

+0

il ne renverra jamais une valeur vide donc vous n'avez pas besoin de gérer l'erreur pour cela, sinon vous devez définir la valeur par défaut à false à votre variable ce qui n'est pas une bonne pratique. –