2013-11-19 2 views
-3

Эй, ребята, это то, что я получил до сих пор:C# - Написание пользовательской функции Convert.ToInt/метод

static string ConvertToInt() 
{ 
    string a = Console.ReadLine(); 
    int num = int.Parse(a); 
    Console.WriteLine(num); 
    if (int.TryParse(a, out num)) 
    { 
     return a; 
    } 
    else 
    { 
     return "-1"; 
    } 
} 

То, что я пытаюсь сделать, это написать пользовательскую функцию Convert.ToInt без фактического использования метод, который уже доступен в библиотеке. Поэтому я попытался использовать int.Parse. Он также должен возвращать -1, если вход пользователя НЕ является числом.

Моя проблема заключается в том, что приложение просто останавливается при отладке, если я вхожу в «a», и дает мне ошибку, что входная строка не в правильном формате.

При тестировании метода, я создал новый проект с этими изменениями:

static void Main(string[] args) 
{ 
    string a = Console.ReadLine(); 
    int num = int.Parse(a); 
    Console.WriteLine(num); 
    if (int.TryParse(a, out num)) 
    { 
     Console.WriteLine(a); 
    } 
    else 
    { 
     Console.WriteLine("-1"); 
    } 
} 

Спасибо заранее.

+2

А почему вы пытаетесь создать свой собственный? – Steven

+0

Это домашнее задание? –

+0

Отладчик всегда ваш лучший друг и по крайней мере один отладочный «сеанс» очень ценен ... –

ответ

2

удалить первый Parse и оставить его как int num;

static void Main(string[] args) 
{ 
    string a = Console.ReadLine(); 
    int num; 
    if (int.TryParse(a, out num)) 
    { 
     Console.WriteLine(a); 
    } 
    else 
    { 
     Console.WriteLine("-1"); 
    } 
} 
+0

Спасибо, работал как шарм! – Bradolf

+0

@ Bradolf awesome :) Не могли бы вы принять ответ, чтобы вопрос можно было закрыть? –

+0

Извините, я думал, что должен подождать не менее 15 минут, прежде чем я смогу принять ответ. Но это уже сделано. Еще раз спасибо :) – Bradolf

2

Проблема:int.Parse() бросает FormatException когда строка не в правильном формате.

Решение: удалить функцию int.Parse() и не присвоить значение переменной num

Попробуйте:

string a = Console.ReadLine(); 
int num; 
if (int.TryParse(a, out num)) 
{ 
    Console.WriteLine(a); 
} 
else 
{ 
    Console.WriteLine("-1"); 
} 
+0

Y U NO CODEALIGN ?? :) – Noctis

Смежные вопросы