StringToByteArray () создает исключение в C # 2.0 - PullRequest
3 голосов
/ 31 мая 2011

Я практикую StringToByteArray () на VS2005.Но брось исключение.Не могли бы вы рассказать мне больше информации об этом?

Предупреждение об исключении ** Необработанное исключение типа 'System.FormatException' произошло в mscorlib.dll

Дополнительная информация: Не удалось найти какие-либо распознаваемые цифры. **

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");
    }

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

Вам нужно либо удалить "0x" с начала строки, которую вы передаете, либо начать цикл for с int i = 2;.Также вы выделяете массив в вашем методе.Вам не нужно делать это Main.

1 голос
/ 31 мая 2011

Ну, у вас есть возможность делить на ноль исключений ...

После того, как вы это исправите, вам нужно продолжить проверку ввода, убедившись, что ваша строка начинается с 0x, а затем пропустить префикс при выполнении преобразования.

...