Avatar ·

Разница между == и === в C#

Всем привет! Я новичок в C# (ранее писал на JavaScript) и столкнулся с непониманием операторов сравнения. В JS есть строгое сравнение === и нестрогое ==. В C# я вижу только ==, но слышал, что есть Equals() и ReferenceEquals(). Однако не могу найти информацию о === — его просто нет? Или это какой-то синтаксис, который я пропустил?

Я пробовал следующий код:

int a = 5;
int b = 5;
object objA = a;
object objB = b;

Console.WriteLine(a == b);          // True
Console.WriteLine(objA == objB);    // False (сравнение ссылок?)
Console.WriteLine(objA.Equals(objB)); // True (сравнение значений?)

Ожидал, что objA == objB даст True, но получил False. В чём разница между == для значимых и ссылочных типов? Существует ли в C# аналог === из JS для строгого сравнения без упаковки? Или нужно всегда использовать Equals()? Буду благодарен за объяснение с примерами.