Что такое ссылочная идентичность в c #? [дубликат]

Dec 08 2020

Я ищу разницу между оператором (==) и методом Equals (). Многие ресурсы говорят, что оператор (==) сравнивает ссылочную идентичность. Что на самом деле является эталонным идентификатором?

Ответы

OlivierRogier Dec 08 2020 at 21:48

В дополнение к дубликатам я публикую этот ответ, потому что вопрос более специфичен для того, что я нашел.

Проще говоря: эталонная идентичность - это равенство адресов памяти, поскольку две переменные указывают на одно и то же содержимое или нет, например, почтовый адрес или стакан воды. Поскольку ссылки - это скрытые указатели, нужно забыть управлять ими.

GC также является уровнем выше, чтобы облегчить управление экземплярами объектов в памяти и забыть уничтожить / освободить те, которые мы больше не используем.

Оператор ==может быть перегружен для сравнения значений вместо ссылок, так что есть на object Equals()и ReferenceEquals()методу.

Вот несколько руководств:

C # - Типы данных

C # - переменные

Тип значения и ссылочный тип

Как получить счетчик ссылок объекта CLR?