gpt4 book ai didi

c# - 删除代码中的冗余

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:47 25 4
gpt4 key购买 nike

我还是新手,所以我会尽力解释我的问题。英语不是我的母语,所以如果我用错了一些术语,我深表歉意。

我有一个 100 行代码,每次按下按钮时都会执行。我的问题是,我有 20 个按钮,它们都包含相同的代码(它们在从不同来源获取信息的方式上略有不同)。有没有办法做到这一点,而不是复制相同的代码太多次。

基本上我的代码是这样的:

    private void button1_Click(object sender, EventArgs e)
{
//file data source url
sourceUrl = ("www.myurl.com")

//Grab data
code
code
code

//Store data
code
code
code

//Write data
code
code
code
}

除了“sourceUrl”部分之外,每个按钮都有相同的代码。如果我想添加更多按钮,我必须复制>粘贴整个代码,我的应用程序开始变得巨大。有没有办法通过只编写一次代码来缩小代码,然后每次按下按钮时调用一个 Action 或方法。因此,我不会多次使用 100 行代码,而是为每个按钮设置一个行代码,并在顶部设置一个 100 行代码,作为该行代码的来源。

提前致谢

最佳答案

使用 Tag按钮的属性来存储源 url 字符串,然后为每个按钮设置相同的事件处理程序

private void buttonCommonHandler_Click(object sender, EventArgs e)
{
Button b = sender as Button;
CommonMethod(b.Tag.ToString());
}

private void CommonMethod(string sourceUrl)
{
// Execute the common code here....
}

您可以使用表单设计器窗口设置通用处理程序和标签,或者您可以动态模仿 InitializeComponent 中设计器为您准备的代码。称呼
button1.Click += buttonCommonHandler;
button1.Tag = "www.myurl.com";
button2.Click += buttonCommonHandler;
button2.Tag = "www.anotherurl.com";

关于c# - 删除代码中的冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18698727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com