1

別のクラスで作成したメソッドから出力を取得して、writelineステートメントの途中に値を返そうとしています。エラー「演算子'+'はタイプ'文字列'および'メソッドグループ'のオペランドに適用できません」は何も実行を停止していますが、エラーを解決するために見つけることができないようです。これは私が見逃している本当に単純なことかもしれませんが、私はまだプログラミングに本当に慣れていないので、おそらく明らかな何かを見逃しています。

    public void EatFruits()
    {
        double dblpercent;
        this.MakeFruits();
        Console.WriteLine("You have an Apple and a Banana in your fruit garden.");
        Console.WriteLine("What Percent of the Apple would you like to eat?");
        dblpercent = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("What Percent of the Banana would you like to eat?");
        dblpercent = Convert.ToDouble(Console.ReadLine());
        Console.WriteLine("You have " + (apple.Eat) + "% of your apple and " + (banana.Eat) + "% of your banana left.");
    }

また、他のクラスのEatメソッドのコードは次のとおりです。

    public double Eat(double dblpercent)
    {
        return (PercentFruitLeft-dblpercent);
    }

PercentFruitLeftは、値100で初期に設定され、その後、ユーザーが食べたい量を入力するたびに減少しました。

4

1 に答える 1

1

メソッドグループは、C#標準で使用される式であり、共通名で識別される1つ以上のオーバーロードされたメソッドのグループを記述します。この場合、コンパイラはメソッドグループを参照しapple.Eatています。banana.Eat

メソッド名に続く括弧内のパラメーターを使用してメソッドを呼び出す必要があります。dblpercentさらに、リンゴとバナナに別々の変数が必要です。

Console.WriteLine("What Percent of the Apple would you like to eat?");
double dblpercentApple = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("What Percent of the Banana would you like to eat?");
double dblpercentBanana = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("You have " + (apple.Eat(dblpercentApple)) + "% of your apple and " + (banana.Eat(dblpercentBanana)) + "% of your banana left.");

文字列を連結して手動で作成するのではなく、次のような書式設定を使用できます。

Console.WriteLine("You have {0}"% of your apple and {1}% of your banana left.", apple.Eat(dblpercentApple), banana.Eat(dblpercentBanana));

これにより、一緒に記述した文字列のテンプレートを1つの文字列に保持することで、コードがさらに明確になります。

于 2012-11-10T02:32:04.957 に答える