c# - 减少 if 语句中的条件

标签 c# if-statement

当表单上的所有文本框都完成时,我有一个 if 语句来运行一些代码,

下面是我检查所有文本框是否为空的方法

if (txtUserId.Text != ""
                    && txtFirstName.Text != ""
                    && txtLastName.Text != ""
                    && txtCity.Text != ""
                    && txtSTate.Text != ""
                    && txtCountry.Text != "")
                {
                    // Some code
                }

有没有更好的写法?

最佳答案

将 checkout 抽象为一个函数:

bool IsFilled(TextBox tb) { return tb.Text != ""; }

然后你可以使用旧的、简化的代码,或者这个技巧:

var textBoxes = new [] { txtUserId, txtFirstName, ... };
if (textBoxes.All(tb => IsFilled(tb)) { ... }

您获得的文本框越多,这可能更具可扩展性。

您还可以编写 textBoxes.All(IsFilled) ,由于方法组转换为委托(delegate),因此可以正常工作。这稍微性能更高,而且更短。不过,我发现方法组转换很难理解和误导。其他人可能会问您“那有什么作用?”这表明有代码味道。我不推荐它。

关于c# - 减少 if 语句中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18980218/

相关文章:

python - 如果一行中的一个单元格为空,则更改数据帧中的特定值

Java if else 语句有帮助吗?

c# - UWP 动画汉堡图标

c# - Visual Studio 更改 C# 方法参数着色

c# - 将列表中的值与另一个列表中的特定总和进行比较的最快方法是什么?

c# - WPF 将位字段插入 MySQL 数据库

c# - 如何使用 LINQ 使用 Azure AD 图形 API 客户端库 2.0 查找具有特定许可证的 Azure AD 用户

jquery - 检查类为 'X' 的元素是否具有 'N' 的 rel

jquery - 在 if 语句中使用 jQuery 更改 css 属性

jquery - 如何使用 jquery if else 语句切换类?