Здравствуйте, Sinclair, Вы писали:
S>>>Примерно такой код и живёт
V>>Так где?
S>Вы в ответ на этот вопрос без ответе жжоте в другой ветке. Повторюсь, мне не лень:
S>https://github.com/mysql-net/MySqlConnector/blob/76357a15baf0a9437d123e8a884044d633eb006c/src/MySqlConnector/Core/BinaryRow.cs#L72
Продолжаю не видеть там этого кода, про который спросил здесь:
http://www.rsdn.org/forum/flame.comp/8083927.1
Я просил ссылку на тот код чтобы понять, наконец, это реальный код или умозрительный твой.
V>>В других сообщениях я утверждал, что те или иные классы можно было сделать структурами, ты отвечал "они и так структуры" — так где?
S>Вы неверно поняли то, что я писал. Я писал, что внутри MSSQL-драйвера данные лежат в буферах структурного типа, чтобы избежать боксинга на горячих путях. Единственное что — мне показалось, что они там прямо массив структур в датаридере держат, а на самом деле — массив объектов, в которых есть поле-union, в котором лежат данные.
Именно.
И так там вдоль всего кода.
И тоже боксинг в простейших случаях:
internal int Int32
{
get
{
ThrowIfNull();
if (StorageType.Int32 == _type)
{
return _value._int32;
}
return (int)Value; // anything else we haven't thought of goes through boxing.
}
set
{
Debug.Assert(IsEmpty, "setting value a second time?");
_value._int32 = value;
_type = StorageType.Int32;
_isNull = false;
}
}