0

ここで 2 番目の投稿です。最近コンピューティング コースを開始し、C# に取り組んでいます。これまでのところすべてを理解しており、取り組むべき最初のプロジェクトがありますが、ここで困惑しています。全体をお見せします。あなたが読むためのコード、それから私はエラーが見つかった部分に一番下に分けます:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calculator
{
public partial class Form1 : Form
{
    string number;
    public Form1()
    {
        InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void Number0_Click(object sender, EventArgs e)
    {
        number = number + "0";
        CalcForm.Text = number;
    }

    private void Number1_Click(object sender, EventArgs e)
    {
        number = number + "1";
        CalcForm.Text = number;
    }

    private void Number2_Click(object sender, EventArgs e)
    {
        number = number + "2";
        CalcForm.Text = number;
    }

    private void Number3_Click(object sender, EventArgs e)
    {
        number = number + "3";
        CalcForm.Text = number;
    }

    private void Number4_Click(object sender, EventArgs e)
    {
        number = number + "4";
        CalcForm.Text = number;
    }

    private void Number5_Click(object sender, EventArgs e)
    {
        number = number + "5";
        CalcForm.Text = number;
    }

    private void Number6_Click(object sender, EventArgs e)
    {
        number = number + "6";
        CalcForm.Text = number;
    }

    private void Number7_Click(object sender, EventArgs e)
    {
        number = number + "7";
        CalcForm.Text = number;
    }

    private void Number8_Click(object sender, EventArgs e)
    {
        number = number + "8";
        CalcForm.Text = number;
    }

    private void Number9_Click(object sender, EventArgs e)
    {
        number = number + "9";
        CalcForm.Text = number;
    }

    private void ButtonDecimal_Click(object sender, EventArgs e)
    {
        number = number + ".";
        CalcForm.Text = number;
    }

    private void ButtonTimes_Click(object sender, EventArgs e)
    {
        string equation1 = CalcForm.Text;
        double equation1int = Convert.ToDouble(equation1);
        CalcForm.Text = "";
        number = "";
        string equation2 = CalcForm.Text;
        double equation2int = Convert.ToDouble(equation2);
        var equalsclicked = ButtonEquals_Click;
        if (equalsclicked == true) 
        {
        CalcForm.Text = "";
        number = "";
        double answer = equation1int * equation2int;
        string answer1 = Convert.ToString(answer);
        CalcForm.Text = answer1;
    }
    }

    private void ButtonEquals_Click(object sender, EventArgs e)
    {

    }
}
}

フォームコードがあり、ここにエラーがあります。正確な行にコメントします

{
    string equation1 = CalcForm.Text;
    double equation1int = Convert.ToDouble(equation1);
    CalcForm.Text = "";
    number = "";
    string equation2 = CalcForm.Text;
    double equation2int = Convert.ToDouble(equation2);
    var equalsclicked = ButtonEquals_Click; //Here
    if (equalsclicked == true) //Here
    {
    CalcForm.Text = "";
    number = "";
    double answer = equation1int * equation2int;
    string answer1 = Convert.ToString(answer);
    CalcForm.Text = answer1;
}

エラーがありますが、他に間違っている点はありますか? それとも最適化が賢明ですか?これは乗算専用ですが、一度それを行ったら、簡単にコピーできます、ありがとう:)

4

3 に答える 3

0

プログラムをイベントベースのプログラムと考えてください。すべての関数は基本的にイベント ハンドラーであり、すべての数字ボタン クリック イベントと 10 進数ボタン クリック イベントを正しく処理していることがわかります。ただし、イベント ハンドラー ButtonTimes_Click() では、David が指摘したように間違っていました。

私の提案は、ButtonTimes_Click() に演算子を格納することです (コードでは、式 1 と式 2 です)。次に、ButtonEquals_Click() で、以前に保存された演算子に基づいて乗算を行い、結果を CalcForm.Text に割り当ててから、演算子をクリアします。

于 2013-10-15T16:20:14.077 に答える