【问题标题】:Is unsafe normal in .net C#?.net C# 中的不安全正常吗?
【发布时间】:2011-06-06 13:46:52
【问题描述】:

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

只能使用 unsafe 关键字。 可以吗,还是有其他方法可以从 sbytes 数组创建字符串?

【问题讨论】:

  • sbyte 在 .NET 中非常少见;这可能是一些移植的java代码吗? byte(无符号)更为常见。
  • 多么有趣的问题 - 为此 +1!

标签: c# .net arrays string


【解决方案1】:

首先: How to convert a sbyte[] to byte[] in C#?

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

然后:

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

【讨论】:

    【解决方案2】:

    你为什么使用 sbyte?

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

    【讨论】:

    • 也许他在别处使用 C
    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2013-11-10
    • 2013-06-10
    • 2010-09-28
    • 1970-01-01
    相关资源
    最近更新 更多