关于c#2.0:StringToByteArray()在C#2.0中抛出异常

StringToByteArray() throw exception in C# 2.0

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

异常警报**mscorlib.dll中发生"system.formatException"类型的未处理异常

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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");
    }


您要么需要从传入的字符串的开始处删除"0x",要么使用int i = 2;启动for循环。另外,您还在方法中分配数组。你也不需要这么做。


嗯,你有被零除的可能性,例外…

修复后,需要继续输入验证,方法是确保字符串以0x开头,然后在进行转换时跳过前缀。