Diferença entre == e === em C#
Olá a todos! Sou novo em C# (anteriormente escrevia em JavaScript) e me deparei com uma falta de entendimento sobre operadores de comparação. Em JS, há comparação estrita === e não estrita ==. Em C#, vejo apenas ==, mas ouvi dizer que existem Equals() e ReferenceEquals(). No entanto, não consigo encontrar informações sobre === — ele simplesmente não existe? Ou é alguma sintaxe que perdi?
Tentei o seguinte código:
int a = 5;
int b = 5;
object objA = a;
object objB = b;
Console.WriteLine(a == b); // True
Console.WriteLine(objA == objB); // False (comparação de referências?)
Console.WriteLine(objA.Equals(objB)); // True (comparação de valores?)
Esperava que objA == objB retornasse True, mas obtive False. Qual é a diferença entre == para tipos de valor e tipos de referência? Existe em C# um análogo de === do JS para comparação estrita sem boxing? Ou é necessário sempre usar