2013-12-18 3 views
0

У меня есть список вопросов и ссылок на C#. У меня есть два разных списка, которые могут содержать определенный объект. Если я добавлю один и тот же экземпляр в оба списка с помощью List.Add (Object) и List2.Add (Object), будут ли они оба ссылаться на один и тот же объект? Например, если я получаю доступ к объекту из одного списка, отредактируйте какое-либо свойство этого конкретного объекта, будут ли изменения видимыми «общими»?C# список ссылка когерентность

На самом деле, это вопрос для GridView, у меня просто есть таблица из 2 объектов, и мне нужно иметь таблицу, содержащую только один из объектов. Могу ли я просто создать другой список, содержащий только ссылки на эти конкретные объекты? C++, хотя и более сложный, был бы здесь менее двусмысленным.

+1

Почему бы вам не попробовать и не узнать. –

+0

+1 Для Дэн-о. Некоторые вещи, которые вам просто нужно проверить для себя. Этот сайт не должен быть заполнен спецификациями языка программирования. – dburner

ответ

4

Да, они оба относятся к одному и тому же объекту. Вы добавляете ссылки в списки. По идее, вы не добавляете сам объект, а ссылаетесь на него.

Я не собираюсь говорить, что указатели и ссылки C++ идентичны, но концептуально они одинаковы. В C++ указатель «указывает» на фактический экземпляр (в действительности он указывает на ячейку памяти - весь объект - это область памяти), а в C# ссылка «ссылается» на фактический экземпляр.

Смежные вопросы