Дано:
string MyNum = "1";
Вопрос:
Convert.ToInt32(MyNum[0]) == ?
Ответ и пояснение под катом. )
Ответ: 49
Пояснение:
В шарпах строка все еще неявно является массивом типа char. Фактически, я пытаюсь вызвать Convert.ToInt32(char c), и конвертер пытается преобразовать некий произвольный символ в число. С учетом. что для него символ может быть произвольным, он считает вполне логичным вернуть нам ASCII код. Что и описывает нам документация: https://msdn.microsoft.com/en-us/library/ww9t2871(v=vs.110).aspx
Что делать:
Convert.ToInt32(MyNum.Substring(0,1))
или (народ на stackoverflow предлагает) так
Convert.ToInt32(Convert.ToString(MyNum[0]));
Комментариев нет:
Отправить комментарий