在.net C#中是不安全的正常操作

本文关键字:常操作 操作 net 不安全 | 更新日期: 2023-09-27 17:58:30

我需要从sbytes数组(sbyte[])创建一个新的String实例。为此,我需要将sbyte[]转换为sbyte*

只能使用unsafe关键字。这样可以吗?或者有其他方法可以从sbytes数组创建String吗?

在.net C#中是不安全的正常操作

第一个:如何在C#中将sbyte[]转换为byte[]?

sbyte[] signed = { -2, -1, 0, 1, 2 };
byte[] unsigned = (byte[]) (Array)signed;

然后:

string yourstring = UTF8Encoding.UTF8.GetString(unsigned);

为什么要使用sbyte?

Encoding.Default.GetString(和任何其他编码)将byte[]数组作为参数,因此如果所有值都不是负数,则可以使用LINQ转换sbyte[]数组:array.Cast<byte>().ToArray()