c# - 参数为 sbyte 类型的 GetBytes

标签 c#

为什么 GetBytes 返回两个元素的数组而不是一个元素的数组,尽管 sbyte 的存储只需要 1 个字节。

byte[] byteArray = BitConverter.GetBytes((sbyte)127)

最佳答案

GetBytes 没有 an overload它需要一个 sbyte,所以你的 sbyte 被隐式转换为 short 并且你调用 GetBytes(short),返回两个字节。

你应该简单地将你的 sbyte 转换为一个带有 uncheckedbyte转换。

sbyte s = 127;
byte[] byteArray = new[] { (byte)s };

关于c# - 参数为 sbyte 类型的 GetBytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613440/

相关文章:

c# - 为什么 FileShare 不能按预期工作?

c# - SqlCommand 的输入输出参数

c# - 如何在禁用的 WinForms 上设置 WaitCursor 光标

c# - 从字符串请求中获取特定字符

c# - CompiledQuery 与普通 Linq SQL 生成

c# - 正则表达式从捕获中排除匹配

c# - PetaPoco (DotNetNuke) 和 SQL - 添加具有 List 属性的对象或其他复合对象

c# - Include 和 Where 谓词导致左连接而不是内连接

c# - 带有句号的 Instagram 搜索标签?

c# - 字典列表<>未知类型<>