2017-04-23 8 views
0

任意のデータ型の値を入力し、選択した単一の変数に格納し、そのデータ型をチェックする方法。動的データ型を使用すると、出力は実行時のすべての値の文字列データ型になります。ここに私のコードは、あなたがintのように、stringは別のデータ型に解析することが可能かどうかをチェックするためにTryParseメソッドを使用することができます....任意のデータ型の値を入力し、選択した単一の変数に格納し、そのデータ型をチェックする方法はありますか?

class Program 
{ 
    static void Main(string[] args) 
    { 
     Console.WriteLine("Enter the input value"); 
     dynamic str = Console.ReadLine(); 
     if (str.GetType() == typeof(int)) 
     { 
      Console.WriteLine("This input is of type Integer"); 
     } 
     else if(str.GetType() == typeof(float)) 
     { 
      Console.WriteLine("This input is of type Float"); 
     } 
     else if (str.GetType() == typeof(string)) 
     { 
      Console.WriteLine("This input is of type String"); 
     } 
     else 
     { 
      Console.WriteLine("This is something else"); 
     } 
     Console.ReadLine(); 
    } 
} 
+0

あなたの質問とは何の関係もないタグを追加しないでください。これは 'c#'の質問であり、 'java'とは何の関係もありません。 –

+1

https://msdn.microsoft.com/en-us/library/system.console.readline(v=vs.110).aspxを確認すると、Console.Readline()が常に文字列を返すことがわかります。ソリューションを再考する必要があります。他に何を試しましたか? – swatsonpicken

+1

'dynamic'はあなたをここで助けません...あなたは文字列変数の値を受け取り、その値を' int'と 'float'で解析する必要があります。正常に解析された場合は、構文解析が成功したことに基づいてintまたはfloatのいずれかを意味します。そうでなければ、値は文字列です。ユーザーがコンソールから文字列値だけを入力できるので、ここに何か他のものを置くことはできません。 –

答えて

0

です。これらの方法で

ルック(もっとあります):Int32.TryParseInt64.TryParseSingle.TryParseDouble.TryParse

string input = Console.ReadLine(); 

if (Int32.TryParse(input, out _)) 
{ 
    // input is int 
} 
else if (Single.TryParse(input, out _)) 
{ 
    // input is float 
} 
else 
{ 
    // input is neither int nor float 
} 
関連する問題