所以這是一件相當簡單的事情,我很好奇是否有更好的方法來節省代碼行。對于課堂,我們正在制作電傳打字機。基本上有一個文本框,以及一系列按鈕 AZ 和 0-9。當您單擊按鈕時,它會將相應的字母/數字添加到文本框中。當您單擊發送時,它會將文本框的內容添加到標簽并重置文本框。一切正常,只需幾分鐘即可構建。但是有一堆多余的行,我很好奇是否有辦法用方法清理代碼。
這是我目前的代碼。
private void btn_A_Click(object sender, EventArgs e)
{
box_UserInput.Text = box_UserInput.Text "A";
}
如您所見,它非常簡單和直接。單擊 A,“A”將添加到文本框中。但是按鈕的 Text 屬性也只是“A”,我想知道是否有辦法只復制該按鈕的 text 屬性并將其添加到文本框字串中。
像這樣的東西,除了使用通用方法,而不是必須指定 btn_A 它只是根據單擊的按鈕繼承要復制的按鈕。這樣我就可以在每個按鈕上使用相同的代碼行。
private void btn_A_Click(object sender, EventArgs e)
{
box_UserInput.Text = box_UserInput.Text btn_A.Text;
}
uj5u.com熱心網友回復:
您可以使用更通用的這個,因為 Control 類包含 Text 屬性。此外,使用最佳實踐 $""。
private void btn_A_Click(object sender, EventArgs e)
{
box_UserInput.Text = $"{box_UserInput.Text}{((Control)sender).Text}";
}
您還可以為每個按鈕分配相同的事件。創建一個事件,比如 addControlTextOnClick 并將相同的事件分配給每個按鈕。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void addControlTextOnClick(object sender, EventArgs e)
{
box_UserInput.Text = $"{box_UserInput.Text}{((Control)sender).Text}";
}
}
你甚至可以使用這個 C# 結構來縮短它:
private void addControlTextOnClick(object sender, EventArgs e) =>
box_UserInput.Text = $"{box_UserInput.Text}{((Control)sender).Text}";

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/313906.html
