我是在一個困境,其中我有一個簽署字節陣列(sbyte[]
)作爲輸入提供給測試類,我想用簡單的普通字節數組(byte[]
)替換它。我從谷歌搜索來到這裏,但湯姆的回答對我沒有用處。
我寫了一個輔助方法來打印出一個給定的byte[]
的初始化:
public void PrintByteArray(byte[] bytes)
{
var sb = new StringBuilder("new byte[] { ");
foreach (var b in bytes)
{
sb.Append(b + ", ");
}
sb.Append("}");
Console.WriteLine(sb.ToString());
}
您可以使用它像這樣:
var signedBytes = new sbyte[] { 1, 2, 3, -1, -2, -3, 127, -128, 0, };
var unsignedBytes = UnsignedBytesFromSignedBytes(signedBytes);
PrintByteArray(unsignedBytes);
// output:
// new byte[] { 1, 2, 3, 255, 254, 253, 127, 128, 0, }
的輸出中是有效的C#,然後可以僅僅是複製到您的代碼中。
和公正的完整性,這裏是UnsignedBytesFromSignedBytes
方法:
// http://stackoverflow.com/a/829994/346561
public static byte[] UnsignedBytesFromSignedBytes(sbyte[] signed)
{
var unsigned = new byte[signed.Length];
Buffer.BlockCopy(signed, 0, unsigned, 0, signed.Length);
return unsigned;
}
什麼如果你想打印字節? – pyCthon
@pyCthon:你說這個問題是什麼意思? – lpapp
@pyCthon如果您想打印出字節值,請查看[我的回答](http://stackoverflow.com/a/20011305/346561)。 –