我们必须在 WinForms 应用程序中重复我们的代码吗?

Do we have to repeat our code in a WinForms application?

所以我试图从 C# 控制台切换到表单,但我总是读到永远不要重复我们的代码等。

我的第一个项目是一个计算器,我找了一个网站只是为了看看它在win form下的样子,但是在这段代码中有很多重复的地方。这在形式上是否正常,比方说一个计算器?

Here is the link that I am talking about.

这是很多重复,要改进它,请为所有按钮添加一个单击事件处理程序,例如:

btn1.Click += btnClick;
btn2.Click += btnClick;

然后将 sender 投射到一个 Button 以获取哪个被点击,一个粗略的例子:

private void btnClick(object sender, EventArgs e)
{
    var btnName = ((Button)sender).Name;
    var btnValue = btnName.Replace("btn",string.Empty);

    if (textBox1.Text == "0" && textBox1.Text != null)  
    {  
        textBox1.Text = btnValue;  
    }  
    else  
    {  
        textBox1.Text = textBox1.Text + btnValue;  
    }  
}

不要忘记取消挂钩表单卸载事件中的事件订阅:

btn1.Click -= btnClick;
btn2.Click -= btnClick;