C# 有什么方法可以优化这个c代码吗?
这个代码段在我的程序中重复了很多次,但是还有其他按钮,比如按钮3和4,按钮5和6等等。我想知道它是否可以优化或缩短C# 有什么方法可以优化这个c代码吗?,c#,button,optimization,C#,Button,Optimization,这个代码段在我的程序中重复了很多次,但是还有其他按钮,比如按钮3和4,按钮5和6等等。我想知道它是否可以优化或缩短 if (File.Exists(name1)) { button1.IsEnabled = false; button1.Visibility = Visibility.Hidden; button2.IsEnabled =
if (File.Exists(name1))
{
button1.IsEnabled = false;
button1.Visibility = Visibility.Hidden;
button2.IsEnabled = true;
button2.Visibility = Visibility.Visible;
}
else
{
button1.IsEnabled = true;
button1.Visibility = Visibility.Visible;
button2.IsEnabled = false;
button2.Visibility = Visibility.Hidden;
}
}
else
{
button1.IsEnabled = true;
button1.Visibility = Visibility.Visible;
button2.IsEnabled = false;
button2.Visibility = Visibility.Hidden;
}
重要的不是代码的长度。应避免重复逻辑:
private void HideAndDisable(Button b)
{
b.IsEnabled = false;
b.Visibility = Visibility.Hidden;
}
private void ShowAndEnable(Button b)
{
b.IsEnabled = true;
b.Visibility = Visibility.Visible;
}
public void SomeMethod()
{
if(condition)
{
HideAndDisable(button1);
ShowAndEnable(button2);
}
else
{
HideAndDisable(button2);
ShowAndEnable(button1);
}
}
它导致了一个代码:
- 更容易理解
- 可以很容易地重复使用
- 避免隐藏的bug
- 更容易改变
if
语句来匹配最后一个else
@spender bruh我知道它还没有完成。。。。我只需要帮助优化这一部分。给控件起个好名字。2.具有许多操作的复杂逻辑可分为两个明确步骤:评估和执行。3.这是WPF,查看MVVM,使用它将使您的代码更加干净。4.无需禁用隐藏元素(我猜您这样做是因为您在其他地方使用了按钮1.I启用了,请查看MVVM)。5.您的问题缺少重要的详细信息,请参阅。将签名更改为params Button[]b
并添加foreach
将允许您一次调用多个按钮。类似于hideandisable(按钮1、按钮2、按钮3)