2013-10-06 3 views
-3

Я храню объекты классов во вторичном хранилище. Для более быстрого доступа к этим obejcts я хочу знать физический адрес каждого объекта. Как получить физический адрес объектов в Csharp.net? В чем смысл функции GetHashCode() в C# .NET? Связано ли это с физическим адресом объекта?физический адрес объектов в C#

Существует два способа доступа к данным из базы данных: Полное сканирование и Bplustree. Чтобы найти запись из базы данных, если я использую полный метод сканирования, это будет потеря времени. Если я использую Bplustree, то для каждого атрибута мне нужно создать bplusTree, который займет место. Так что мне нужен метод, который будет между ними. Если я могу получить доступ к физическому адресу объекта. Затем я могу напрямую восстановить эту запись. Вот почему задан вопрос. Если у кого-то есть другая идея, тогда это очень приветствуется.

+0

Вы можете использовать указатель, но вы должны сделать код небезопасным, http://msdn.microsoft.com/en-us/library/vstudio/y31yhkeb.aspx – Adil

+4

Ум, для физической адресации требуется драйвер, и на самом деле он медленнее виртуальной адресации, поскольку вам сначала нужно создать для него виртуальное сопоставление. Какова фактическая проблема, с которой вы сталкиваетесь, когда вы думаете, что получение физического адреса поможет? –

+0

Вы пытаетесь решить проблему, которая не существует. –

ответ

1

Нет необходимости получать физические адреса при использовании обычного языка C#. C# - язык более высокого уровня, предназначенный для абстрагирования операций низкого уровня, таких как управление памятью.

GetHashCode() предназначен для возврата хеш-кода, то есть идентификатора объекта, который используется для выделения одного экземпляра класса из другого экземпляра. Это не имеет никакого отношения к физическому адресу. Подробнее здесь, в MSDN: http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx

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