StringToByteArray() 在 C# 2.0 中抛出异常

Posted

技术标签:

【中文标题】StringToByteArray() 在 C# 2.0 中抛出异常【英文标题】:StringToByteArray() throw exception in C# 2.0 【发布时间】:2011-09-05 03:28:01 【问题描述】:

我在 VS2005 上练习 StringToByteArray()。但是抛出异常。你能告诉我更多关于它的信息吗?

异常警报 **在 mscorlib.dll 中发生了“System.FormatException”类型的未处理异常

附加信息:找不到任何可识别的数字。**

public static byte[] StringToByteArray(String hex)
    
        int NumberChars = hex.Length;
        byte[] bytes = new byte[NumberChars / 2];
        for (int i = 0; i < NumberChars; i += 2)
            // exception here
            bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
        return bytes;
    

    static void Main()
    
            byte[] myByte = new byte[2];
        myByte = StringToByteArray("0x0");
    

【问题讨论】:

【参考方案1】:

您需要从传入的字符串的开头删除“0x”,或者使用int i = 2; 开始您的for 循环。此外,您正在您的方法中分配数组。你也不需要这样做Main

【讨论】:

他也不确定字符串由偶数个字符组成。【参考方案2】:

嗯,你有可能被零除异常......

修复该问题后,您需要通过确保字符串以 0x 开头并在进行转换时跳过前缀来继续输入验证。

【讨论】:

以上是关于StringToByteArray() 在 C# 2.0 中抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UTF8 字符串转换为字节数组?

将 Base64 字符串解码为字节数组

labview 数组中相邻元素抽取和组合(截取)

在 C# 中以编程方式检查字符串是不是包含有效的 C# 代码

C# - 使用自定义配置在运行时编译 c# 代码

c# 在 c# 应用程序中保存配置数据的最佳方法是啥。 [复制]