我正在重写库,其任务是使其完全免费分配。目标是在应用程序的启动阶段完成后拥有 0 个集合。
以前有很多这样的调用:
Int32 foo = Int32.Parse(ASCIIEncoding.ASCII.GetString(bytes, start, length));
我相信这是分配一个字符串。我找不到可以自动执行相同操作的 C# 库函数。我查看了 BitConverter 类,但看起来只有当您的 Int32 使用代表它的实际字节进行编码时。在这里,我有一个字节数组,表示代表 Int32 的 Ascii 字符。
这就是我所做的
public static Int32 AsciiBytesToInt32(byte[] bytes, int start, int length)
{
Int32 Temp = 0;
Int32 Result = 0;
Int32 j = 1;
for (int i = start + length - 1; i >= start; i--)
{
Temp = ((Int32)bytes[i]) - 48;
if (Temp < 0 || Temp > 9)
{
throw new Exception("Bytes In AsciiBytesToInt32 Are Not An Int32");
}
Result += Temp * j;
j *= 10;
}
return Result;
}
有谁知道已经以更优化的方式执行此操作的 C# 库函数?或改进以使上述运行更快(可能在白天被调用数百万次)。谢谢!