2
    Console.WriteLine ("Please enter some numbers");
        int sum = 0;
        for(;;)
        {
            string input = Console.ReadLine ();
            if (string.IsNullOrEmpty (input))
            {
                break;
            }
            int inputParsed = int.Parse (input.ToString ());
            int sumParsed = int.Parse (sum.ToString ());
            sum = sum + input; // throws an error here

            Console.WriteLine (sum);

ユーザーが入力したすべての数値の合計をプログラムに表示したいのですが、必要なすべての変数を解析したにもかかわらず、「タイプ 'string' を 'int' に暗黙的に変換できません」というエラーがスローされます。どうしたの?

4

4 に答える 4

8
sum = sum + input; //throws an error here

次のようにする必要があります。

sum = sum + inputParsed ;

解析された値の代わりに元の入力を使用しています。またsumParsed、合計を保持するだけでsum、intを文字列にキャストしてから解析して整数に戻す必要がないため、必要ありません。

于 2013-07-23T17:16:33.797 に答える
4

ユーザーの入力が正しいかどうかを確認したい

int userInput = 0;
if( int.TryParse( input, out userInput ) == false )
{
     break;
}

これは単なるアドバイスであり、問​​題の直接的な解決策ではありません。十分な答えがあります =)

于 2013-07-23T17:21:21.590 に答える
1

これを完全に書き直します(元のエラーは、解析された入力を としてではなく、 にstringを追加しようとしたためです)intint

Console.WriteLine ("Please enter some numbers");
int sum = 0;

while (true)
{
    int parsedInput = 0;
    string input = Console.ReadLine();
    if (!string.IsNullOrEmpty(input) && int.TryParse(input, out parsedInput))
    {
        sum += parsedInput;
        Console.WriteLine (sum);
    }
    else
    break;
}
于 2013-07-23T17:24:11.233 に答える