TGViewer
C# | Вопросы собесов C# | Вопросы собесов @easy_c_sharp · 5.01K subscribers
Post #1958 1.03K
🤔 Если в двух переменных хранится одинаковое значение, то будут ли они равны?

Сравнение значений переменных может зависеть от типа данных, хранящихся в этих переменных, и от способа их сравнения.

🟠Примитивные типы (Value Types)
Для примитивных типов (например, int, float, char, bool) значение хранятся непосредственно в переменных, и их сравнение выполняется по значению.
int a = 5;
int b = 5;

bool areEqual = (a == b); // True


🟠Ссылочные типы (Reference Types)
Для ссылочных типов (например, классы, строки) переменные содержат ссылки на объекты в куче. Сравнение ссылочных типов по умолчанию выполняется по ссылке, а не по значению.
class Person
{
public string Name { get; set; }
}

Person person1 = new Person { Name = "Alice" };
Person person2 = new Person { Name = "Alice" };

bool areEqual = (person1 == person2); // False, потому что сравниваются ссылки


🟠Строки (Strings)
Строки являются ссылочными типами, но переопределяют операторы сравнения == и Equals для сравнения по значению.
string str1 = "Hello";
string str2 = "Hello";

bool areEqual = (str1 == str2); // True, строки сравниваются по значению


🟠Кастомные классы
Для кастомных классов можно переопределить методы Equals и GetHashCode, чтобы сравнивать объекты по значению.
class Person
{
public string Name { get; set; }

public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;

Person other = (Person)obj;
return Name == other.Name;
}

public override int GetHashCode()
{
return Name.GetHashCode();
}
}

Person person1 = new Person { Name = "Alice" };
Person person2 = new Person { Name = "Alice" };

bool areEqual = person1.Equals(person2); // True


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_c_sharp
  1. Oct 14, 2026🤔 Как можно не отслеживать сущность? В Entity Framework можно не отслеживать сущность, чт…
  2. Oct 14, 2026🤔 Какие есть модификаторы доступа? Есть модификаторы доступа, которые определяют, кто мож…
  3. Oct 14, 2026Post #2486
  4. Oct 13, 2026🤔 Что такое Swagger? Swagger (теперь часть OpenAPI): - Это инструмент для документировани…
  5. Oct 13, 2026🤔 Что такое аутентификация? Когда человек вводит логин и пароль, система аутентифицирует…
  6. Oct 13, 2026Тестировщик fullstack: C#-автоматизация и ручные тесты Если вы хотели работать на сильном…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →