小编Pla*_*pus的帖子

在.NET中避免双重转换(byte []到字符串为单一)的方法?

在低延迟HFT应用程序中,我有套接字接收Byte[]包含股票市场数据的消息.

在供应商协议中,股票价格字段Byte[]包含ASCII字符序列.
即字节序列[51-51-46-56]对应于ascii字符[3-3 -.- 8],等于33.8数字.

实际上在消息解析期间我转换Byte[]为字符串然后字符串为Single/float.

有没有办法避免这种双重转换并直接转换Byte[]为单个/浮点数?
其次是否有一种方法可以避免使用在.NET中效率低下的字符串类型(容易发生不可变垃圾收集)?

提前致谢.

问候

[编辑2019年]:这是3年来完美无缺的最终解决方案:

/// <summary> Read a Double precision float field in GL format from the stream and advances stream position of n (1 of field lenght flag + field lenght). </summary>
/// <returns>-1 in case of error, Double precision floating point value ROUNDED TO 8 DECIMAL PLACES in case of success </returns>
/// <param name="IniPos"> Initial Stream Position</param>
public …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net string

5
推荐指数
1
解决办法
103
查看次数

标签 统计

.net ×1

c# ×1

string ×1

vb.net ×1