Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Как преобразовать


Автор: GX777 10.10.2008, 22:24
допустим,у меня есть елемент combobox1 и int.как мне сделать такое типа Convert.ToInt32(combobox1.Text)?
Пишу Int32.Parse(combobox1.Text) -  "Input string was not in a correct format."

Автор: elbjarn 10.10.2008, 22:57
Convert.ToInt32, равно как и Int32.Parse, выкидывают исключение, если приведение к типу не удается (это может произойти по разным причинам, например, вы пытаетесь преобразовать пустую строку или строку, содержащую алфавитные символы). поэтому их надо использовать только в том случае, если вы точно уверены, что приведение к типу будет успешно. к примеру, если вы приводите к int значение поля из БД, которое точно имеет тип int.

в вашем случае лучше использовать int.TryParse(). этот метод возвращает булевское значение - успешно или нет удалось преобразовать.  в качестве параметра принимает out int, - результирующий int, куда будет записан результат преобразования, если оно прошло успешно. этот метод не выбрасывает исключение.

Код

int my = -1;
if (!int.TryParse(combobox1.Text, out my))
 // здесь идет обработка ошибки приведения к типу

Автор: GX777 10.10.2008, 23:14
дело в том что мне нужно именно букву алфавита перевести в чиселнное значение.я изначально пихаю в комбобокс буквы 

Автор: elbjarn 10.10.2008, 23:30
Цитата(GX777 @  10.10.2008,  23:14 Найти цитируемый пост)
дело в том что мне нужно именно букву алфавита перевести в чиселнное значение.я изначально пихаю в комбобокс буквы  

что значит перевести букву алфавита в численное значение? smile  если в комбобоксе содержится, к примеру, "А", к какому численному значению она должна быть приведена?
если имеется в виду численное представление юникодного кода символа - можно преобразовать char к двум байтам, а потом интерпретировать их как Int16 (хотя может есть специальная функция для получения кода символа, не интересовался).

Автор: GX777 10.10.2008, 23:36
Код

char a = 'B';
   int b = (int)'a';
            Console.WriteLine(b.ToString());

попробуй скомпилить.мне нужен именно код буквы в инте.но я не знаю как это сделать со стрингом

Автор: elbjarn 10.10.2008, 23:52
Код

            string s = "A";
            byte[] buffer = Encoding.Unicode.GetBytes(s);
            int value = BitConverter.ToInt16(buffer, 0);

Автор: GX777 10.10.2008, 23:57
Спасибо огромное!!!Это именно то что мне надо

Автор: elbjarn 11.10.2008, 10:48
Цитата(GX777 @  10.10.2008,  23:57 Найти цитируемый пост)
Спасибо огромное!!!Это именно то что мне надо 

пожалуйстаsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)