DateTime todayDateTime = DateTime.Now;
StringBuilder todayDateTimeSB = new StringBuilder("0");
todayDateTimeSB.Append(todayDateTime.ToString("MMddyyyy"));
long todayDateTimeLongValue = Convert.ToInt64(todayDateTimeSB.ToString());
// convert to byte array packed decimal
byte[] packedDecValue = ToComp3UsingStrings(todayDateTimeLongValue);
// append each byte to the string builder
foreach (byte b in packedDecValue)
{
sb.Append(b); // bytes 56-60
}
sb.Append(' ', 37);
上面的代码获取当前日期时间,将其格式化为长值并将其传递给将其转换为压缩十进制格式的方法。我知道上述方法有效,因为当我单步执行代码时,字节数组对于我期望的所有字节都具有正确的十六进制值。
然而,上面是我遇到问题的代码,特别是我研究过并发现字符串生成器.Append(byte)
实际上ToString()
为那个字节做了一个。当它将字节添加到字符串时,它会改变字节的值。问题是我如何告诉StringBuilder
它按原样获取“字节”并将其存储在内存中而不格式化/更改值。我知道还有一个.AppendFormat()
有几个重载,它们使用IFormatProvider
来提供很多关于如何格式化事物的选项,但我没有看到任何方法告诉它不要格式化/更改/更改数据的值。