Что такое ссылочная идентичность в c #? [дубликат]
Я ищу разницу между оператором (==) и методом Equals (). Многие ресурсы говорят, что оператор (==) сравнивает ссылочную идентичность. Что на самом деле является эталонным идентификатором?
Ответы
В дополнение к дубликатам я публикую этот ответ, потому что вопрос более специфичен для того, что я нашел.
Проще говоря: эталонная идентичность - это равенство адресов памяти, поскольку две переменные указывают на одно и то же содержимое или нет, например, почтовый адрес или стакан воды. Поскольку ссылки - это скрытые указатели, нужно забыть управлять ими.
GC также является уровнем выше, чтобы облегчить управление экземплярами объектов в памяти и забыть уничтожить / освободить те, которые мы больше не используем.
Оператор ==может быть перегружен для сравнения значений вместо ссылок, так что есть на object
Equals()и ReferenceEquals()методу.
Вот несколько руководств:
C # - Типы данных
C # - переменные
Тип значения и ссылочный тип
Как получить счетчик ссылок объекта CLR?