1
 public int MainOperationSimplifeid(char operatoru)
    {
        if (beforeoperation == 2)
        {
            a2 = Convert.ToInt32(textBox1.Text);
            textBox1.Text = "";
            result = a1 operatoru a2;
            //   textBox1.Text = Convert.ToString(result);
            a1 = 0;
            a2 = 0;
        }
        beforeoperation++;
        return result;
    }

a1、a2 - プログラム内の 2 つの数値を表し、結果は実行された > 操作の答えです

プログラム内の他の場所で使用されるすべての演算子を減らすために、1文字または他の同様の引数を使用することを考えています

しかし、+、* を 2 つの整数の間の文字に置き換えることはできません。:(

どの inbult 関数または引数がすべての演算子を単一の変数に置き換えることができるか教えてください。これにより、それを引数として渡すことができます。

私の質問に答えてくれてありがとう:)

4

2 に答える 2

-1

コンパイラーはプログラムをコンパイルするためにオペレーターを必要とするため、それを行うことはできないと思います。だから、私が見ることができるように、解決策は、次のようなenumものになる可能性があります:

Enum Operator {
     Addition, Substraction, Multiplication, Division 
};

public double MainOperationSimplified(Operator operatoru)
{
    if (beforeoperation == 2)
    {
        a2 = Convert.ToInt32(textBox1.Text);
        textBox1.Text = "";

        switch (operatoru) {
            case Addition:
               result = a1 + a2;
               break;
            case Substraction:
               result = a1 - a2;
               break;
            case Multiplication:
               result = a1 * a2;
               break;
            case Division:
               result = a1 / a2;
               break;
            default:
               result = 0;
               break;
        }

        a1 = 0;
        a2 = 0;
    }
    beforeoperation++;
    return result;
}
于 2012-07-23T21:49:18.410 に答える