Мне нужно написать программу, которая преобразует строку в int.String to int in C#
Я сделал это, но это не работает
string str = "VKES";
int a = Convert.ToInt32(str);
, что я хочу, чтобы иметь численное значение «VKES»
Мне нужно написать программу, которая преобразует строку в int.String to int in C#
Я сделал это, но это не работает
string str = "VKES";
int a = Convert.ToInt32(str);
, что я хочу, чтобы иметь численное значение «VKES»
Проще говоря: вы не можете преобразовать строку в int, если только эта строка не является числом. Должно иметь смысл, что это будет целое число для преобразования в порядке.
string str = "100";
int a = Convert.ToInt32(str);
Будет работать.
' Convert.ToInt32' внутренне вызывает 'int.Parse'. Я не уверен, где у вас сложилось впечатление, что это «более эффективно», но это не так. –
Спасибо за исправление. В прошлом мне говорили, что эффективнее использовать синтаксический анализ вместо преобразования. Наверное, я был дезинформирован и должен будет заглянуть в него. – ajpaparo
В следующий раз, когда кто-то скажет вам что-то подобное, обратитесь к [исходному коду] (http://referencesource.microsoft.com/#mscorlib/system/convert.cs,069d595792a157df) –
Вы не собираетесь обмануть компилятор. Пока значение str
не является числом в диапазоне от int
, оно не будет работать.
Это потому, что «VKES» не является допустимым целым числом. Подтвердить строку первой
int v;
if (Int32.TryParse(str, out v)) {
}
компилятор может отличить то, что вы литья, вы можете привести тип данных строки для Int. но эта строка должна находиться в диапазоне типа данных int. просто: «должно быть int»
Что вы подразумеваете под преобразованием «VKES» в int? Что вы ожидаете? –
Convert.ToInt32 анализирует строку, чтобы сделать число, которое будет представлять, если человек должен был прочитать строку. Письма не преобразуются в такие числа. Вы пытаетесь суммировать символы «значения»? –
Каков результат, которого вы ожидаете? – maniak1982