C# 优化代码:验证 Panel 子元素是否为空
C# 优化代码:验证 Panel 子元素是否为空
在 C# 代码中,我们经常需要验证 Panel 的子元素是否为空,例如 TextBox、ComboBox 和 DatePicker 等。下面是一段原始代码示例:
foreach (var t in Panel.Children.OfType<FrameworkElement>())
{
if (t is TextBox text)
{
if (string.IsNullOrEmpty(text.Text))
{
return false;
}
}
else if (t is ComboBox com)
{
if (string.IsNullOrEmpty(com.Text))
{
return false;
}
}
else if (t is DatePicker date)
{
if (string.IsNullOrEmpty(date.Text))
{
return false;
}
}
}
这段代码存在一些重复代码,我们可以通过提取重复代码来优化它,使用一个方法来判断是否为空,然后在循环中调用该方法即可。
以下是优化后的代码:
private bool IsNullOrEmpty(FrameworkElement element)
{
if (element is TextBox text)
{
return string.IsNullOrEmpty(text.Text);
}
else if (element is ComboBox com)
{
return string.IsNullOrEmpty(com.Text);
}
else if (element is DatePicker date)
{
return string.IsNullOrEmpty(date.Text);
}
return false;
}
foreach (var element in Panel.Children.OfType<FrameworkElement>())
{
if (IsNullOrEmpty(element))
{
return false;
}
}
通过将重复代码提取到一个独立的方法中,我们不仅使代码更加简洁,也提高了代码的可维护性。当需要添加新的元素类型时,只需要修改 IsNullOrEmpty 方法即可,而不需要修改循环部分的代码。
原文地址: https://www.cveoy.top/t/topic/j5fI 著作权归作者所有。请勿转载和采集!