2013-09-27 2 views
3

На самом деле я пытаюсь написать небольшую программу, которая считывает данные от пользователя, чтобы решить, будет ли это integer или нет.Тип ввода C#

object x=Console.ReadLine(); 
check(x); 

static void check(object x) 
{ 
    if (x.GetType() == typeof(int)) 
     Console.WriteLine("int"); 
    else 
     Console.WriteLine("not int"); 

} 
+6

Int.TryParse it way to go – Steve

+0

'Console.ReadLine()' всегда возвращает строку. Строка может содержать _ номера. –

+1

так в чем вопрос? –

ответ

13

Вы можете использовать это:

string x = Console.ReadLine(); 

int i; 

if(int.TryParse(x, out i)) 
    Console.WriteLine("int"); 
else 
    Console.WriteLine("not int"); 

Если TryParse() возвращает true, разобранное значение сохраняется в i

7

Просто используйте Int.TryParse как в этом примере

int result; 
string x = Console.ReadLine(); 
if(int.TryParse(x, out result)) 
    Console.WriteLine("int"); 
else 
    Console.WriteLine("not int"); 

Метод принимает i nput и целочисленную переменную. Если строка может быть преобразована в целое число, то целочисленная переменная инициализируется с преобразованной строкой, и метод возвращает true. В противном случае метод возвращает false, а переданная целочисленная переменная будет равна нулю.

В качестве примечания стороны. Console.ReadLine возвращает строку

3

попробовать

static void check() 
{ int result 
    string x = Console.ReadLine(); 
    if(int.TryParse(x, out result) 
     Console.WriteLine("int"); 
    else 
     Console.WriteLine("not int"); 

} 
1

Попробуйте

int isInteger; 
Console.WriteLine("Input Characters: "); 
string x = Console.ReadLine(); 
if(int.TryParse(x, out isInteger) 
    Console.WriteLine("int"); 
else 
    Console.WriteLine("not int"); 
+0

Это практически то же самое, что и сообщение Саннисена ... – Sam

+1

Извините, что я печатал, когда я это делал, может быть, у нас есть такая же идея, но мы все знаем, что вопрос прост, так что будут обстоятельства, что ответ будет таким же, как у других , – CMinor

+0

Да, я знаю, просто говорю. Возможно, добавьте ссылку, еще несколько деталей или что-то еще. – Sam

0

Console.ReadLine() всегда будет возвращать строку. Поэтому вы можете попробовать Int.TryParse() Проверить тип. Проверьте нижеприведенный пример

int output; 
    string x = Console.ReadLine(); 
    if(int.TryParse(x, out output) 
     Console.WriteLine("int"); 
    else 
     Console.WriteLine("not int"); 

hope Это может быть полезно для вас.

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