Миллионы раз в день не должны быть проблемой - я ожидаю, что он сможет работать сотни тысяч раз в секунду. Лично я переписал бы вышеупомянутое, чтобы объявить «temp» только внутри цикла (и избавиться от имен локальных переменных в Pascal-случаях - urgh), но это должно быть хорошо.
Код будет более понятен как:
int digit = bytes[i] - '0';
, который делает то же самое, что и ваш
Temp = ((Int32)bytes[i]) - 48;
строка, но более простым способом (ИМО). Они должны вести себя точно так же.
В общем, попытка написать C # без каких-либо выделений довольно жесткая и противоречит тому, как спроектированы язык и фреймворк. Вы верите, что это на самом деле разумное требование? Правда, я слышал о том, как некоторые игры пишутся в управляемом коде ... но это кажется немного странным.
Конечно, вы собираетесь выделить исключение, если байты неуместны ...
РЕДАКТИРОВАТЬ: обратите внимание, что ваш код не допускает отрицательных чисел. Это нормально?