Différence entre == et === en C#
Bonjour à tous ! Je suis débutant en C# (j'écrivais auparavant en JavaScript) et j'ai rencontré une incompréhension des opérateurs de comparaison. En JS, il y a la comparaison stricte === et la comparaison non stricte ==. En C#, je ne vois que ==, mais j'ai entendu dire qu'il y a Equals() et ReferenceEquals(). Cependant, je ne trouve pas d'information sur === — il n'existe tout simplement pas ? Ou est-ce une syntaxe que j'ai manquée ?
J'ai essayé le code suivant :
int a = 5;
int b = 5;
object objA = a;
object objB = b;
Console.WriteLine(a == b); // True
Console.WriteLine(objA == objB); // False (comparaison de références ?)
Console.WriteLine(objA.Equals(objB)); // True (comparaison de valeurs ?)
Je m'attendais à ce que objA == objB donne True, mais j'ai obtenu False. Quelle est la différence entre == pour les types valeur et les types référence ? Existe-t-il en C# un équivalent de === de JS pour une comparaison stricte sans boxing ? Ou faut-il toujours utiliser
No answers yet.
Connectez-vous pour laisser une réponse