【问题标题】:StringToByteArray() throw exception in C# 2.0StringToByteArray() 在 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");
    }

【问题讨论】:

    标签: c# c#-2.0 bytearray


    【解决方案1】:

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

    【讨论】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      相关资源
      最近更新 更多