«Копирование байтов памяти» - это то, для чего .NET не особенно подходит (а VB.NET тем более). Таким образом, если переключение на C не является вариантом для вас, вызов функции для этого практически неизбежен.
BitConverter - продуманная, проверенная функция. Конечно, вы можете избежать этого, выполнив что-то вроде (в C #):
myInt = (*pbyte) | (*(pbyte + 1) << 8) | (*(pbyte + 2) << 16) | (*(pbyte + 3) << 24);
(что, кстати, точно , что BitConverter делает для вас при преобразовании байтового массива в целое число ...).
Однако, этот код:
- Гораздо труднее читать и понимать, чем эквивалент BitConverter;
- Не выполняет никакой проверки ошибок, которую BitConverter делает для вас;
- Не делает различий между представлениями с прямым и прямым порядком байтов, как это делает BitConverter.
Другими словами: вы могли бы «сохранить» вызов функции, но в итоге вам будет значительно хуже (даже при условии, что вы не введете никаких ошибок). В целом, .NET Framework очень и очень хорошо спроектирован, и вам не следует дважды задумываться об использовании его функциональных возможностей, если только вы не столкнулись с реальными (производительными) проблемами с ним.