Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question de logique

2 réponses
Avatar
The Best Poster
Bonjour,

Soit le code : if (A && B) où A et B sont des valeurs booléennes.

Selon certains de mes collègues, l'opérateur && en CSharp evalue
systématiquement les deux conditions A et B.

Or il me semble qu'en C++, le principe est que si la condition A est
fausse, l'évaluation ne va pas plus loin, ce qui permettrait d'écrire :

if ((pointeur !=NULL) && (pointeur->x !=0))

sans provoquer de plantage si pointeur est NULL (car dans ce cas, on
n'évalue pas la seconde condition (pointeur->x !=0)

Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?

Merci.

2 réponses

Avatar
J
Le 19/02/2010 16:44, The Best Poster a écrit :

Soit le code : if (A && B) où A et B sont des valeurs booléennes.


...
Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?



Non, si A est false, alors B n'est pas évalué.
http://msdn.microsoft.com/fr-fr/library/2a723cdk%28VS.80%29.aspx

Jean
Avatar
Christophe Lephay
"J" a écrit dans le message de groupe de discussion
: 4b7ec4da$0$29837$
Le 19/02/2010 16:44, The Best Poster a écrit :

Soit le code : if (A && B) où A et B sont des valeurs booléennes.


...
Pouvez vous me dire si en CSharp les deux conditions A et B sont
systématiquement évaluées ou pas, quand A est faux ?



Non, si A est false, alors B n'est pas évalué.
http://msdn.microsoft.com/fr-fr/library/2a723cdk%28VS.80%29.aspx



Il existe l'opérateur & qui, en revanche, évalue les deux expressions.