1) Интерфейс IBuffer используется для передачи буферов вокруг. Объект IBuffer представляет собой массив байтов.
Интерфейс не дает доступа к байтам буфера. Причина этого заключается в том, что типы WinRT не могут выражать указатели в своих метаданных, поскольку указатели плохо отображают некоторые языки (например, JavaScript или безопасный код C#). Интерфейс может предложить метод доступа к отдельным байтам в буфере, но вызов метода для получения каждого байта слишком сильно повредит производительности.
2) Внутренне CLR может взять объект IBuffer, запрос для его IBufferByteAccess интерфейса , а затем запросить свойство Buffer, чтобы получить небезопасный указатель на байты, содержащихся в буфере. С помощью указателя к байтам можно получить доступ напрямую.
internal interface IBufferByteAccess {
unsafe Byte* Buffer { get; }
}
Это буфер ... Он может быть использован для буферизации при чтении файла ... https://msdn.microsoft.com/en-us/library/windows.storage.fileio.readbufferasync.aspx ? cs-save-lang = 1 & cs-lang = csharp # code-snippet-1 – rducom
Похоже, что реализация непрозрачна, вы всегда будете получать доступ через объект чтения или записи, как показано в ссылке Sharped. –
Это не тип .NET, он принадлежит WinRT. Апи, которую вы используете, когда пишете приложение для Windows Store или телефона. Вы получаете доступ к данным в буфере с классом DataReader. Какие трюки сильно похожи на класс .NET BinaryReader. –