Avatar ·

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