gpt4 book ai didi

c# 删除我的 case 语句中的重复项。使 Case 语句动态化

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

有什么方法可以避免在我的案例陈述中出现重复?我希望我的代码尽可能动态。

 public void LoadTemplate()
{
switch (this.GetTemplate)
{
case 0://Default
this.configForm.txtDSN1.Text = Configuration.Default.ServerParameters.DSN.ToString();
this.configForm.comboServer.Text = Configuration.Default.ServerParameters.Server.ToString();
this.configForm.comboDatabase.Text = Configuration.Default.ServerParameters.Database.ToString();
break;
case 1://Retail
this.configForm.txtDSN1.Text = Configuration.Retail.ServerParameters.DSN.ToString();
this.configForm.comboServer.Text = Configuration.Retail.ServerParameters.Server.ToString();
this.configForm.comboDatabase.Text = Configuration.Retail.ServerParameters.Database.ToString();
break;
default:
break;
}
}

这是我在配置类中的常量。

//Default Template
public partial class Default
{
public partial class ServerParameters
{
public const string DSN = "Default";
public const string Server = "";
public const string Database = "";
}
}
//Retail Template
public partial class Retail
{
public partial class ServerParameters
{
public const string DSN = "Retail1";
public const string Server = "";
public const string Database = "";
}
}

我是 c# 的新手,我可以使用一个好的练习。谢谢

最佳答案

您实质上是在尝试根据选择的配置策略来定义配置行为。由于您已经有两个了解不同配置策略的类,您可能需要考虑重构您的类以遵循 Strategy Pattern .

  • 创建一个接口(interface),该接口(interface)具有接受您的表单的方法。
  • 让您的类 Default 和 Retail 实现该接口(interface)。该方法的每个实现都执行必要的表单配置。您甚至不再需要常量。
  • 然后,就是解决策略的问题了。这可以使用 case 语句、数据映射甚至依赖项注入(inject)来完成。

关于c# 删除我的 case 语句中的重复项。使 Case 语句动态化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872321/

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