2013-10-24 3 views
0

Я пытаюсь преобразовать string в short в C#. Но я продолжаю получать исключение формата, это была необработанная ошибка.Формат Исключение при преобразовании строки в короткий C#

short copies = short.Parse(mainForm.quantityBox.Text); 
printDocument.PrinterSettings.Copies = copies; 

Значение в quantityBox равен "1".

Кончик, что Visual Studio дал мне не очень полезно EG: «при преобразовании строки в DateTime разобрать строку, чтобы принять дату, прежде чем положить каждую переменную»

+1

Что такое значение внутри константы «mainForm.quantityBox.Text» – Saravanan

+0

Каково было значение текстового поля во время excep Тион? –

+0

показать нам несколько примеров ввода. Это в другой культуре, имеют символы валюты или разделители ...! – Anirudha

ответ

0

Попробуйте добавить ToString вызов:

short copies = short.Parse(mainForm.quantityBox.Text.ToString()); 

Причина, по которой вы получали исключение, состоит в том, что у valueBox было значение 1, которое является int. short.Parse() берет строку, поэтому, литая содержимое quantityBox.Text на ToString(), независимо от того, какое значение оно задано, оно будет преобразовано в строку.

+0

«Невозможно неявно преобразовать строку типа в короткий», что я получаю. –

+0

@Esat_K Я отредактировал мой ответ –

1

Исключение формата будет иметь место, если ваш идентификатор входного текстового значения имеет значение «.». (точка). Лучше заменить или обработать эту точку (.), Чтобы избежать «Input string was not in a correct format.».

Это будет бросать ошибки:

short val = short.Parse("4.0");     

Это не будет бросить любую ошибку:

short val1 = short.Parse("4");    
0

Короткое ключевое слово обозначает тип интегральной данных, который хранит значения в зависимости от размера и диапазона, указанного в после Blog