Здравствуйте, Serginio1, Вы писали:
V>>Случаев сразу несколько.
V>>Раньше был доступен stackalloc только под примитивные blit-типы.
V>>Например, делаешь byte * b = stackallock byte[N], затем приводишь к указателю на структуру.
S> На самом деле есть public fixed byte
S>https://stackoverflow.com/questions/13001327/id-like-to-use-union-as-c-sharp-with-byte-array
S> А из него можно уже десериализовать сериализовать объекты
Речь шла о структурах переменного размера.
У таких структур обычно только некий заголовок известен.
S>ну и юнионы тоже
Не обязательно.
Можно просто описать разные типы структур, читать поле-дискриминатор и приводить к соотв. структуре.
Твоё описание хорошо, когда одно поле всего в union, но бывает union структур.
S> Кстати для интереса какая разница вызова localMultiply,Combine, UnsafeCombine и из натива
Я исходники бенчмарка давал, можно добавлять свои тесты.
Например, я забыл про UnmanagedCallersOnly.
Т.е. в тест надо добавить статический метод, помеченный этим атрибутом, получить unmanaged-указатель на этот метод и завернуть по аналогии с остальными случаями в обертку для тестирования.
Хотя, подозреваю, что быстродействие вызова UnmanagedCallersOnly-метода должно быть примерно на уровне DllImport.