Разница между == и === в 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()? Буду благодарен за объяснение с примерами.
Ответов пока нет.
Войдите чтобы оставить ответ