当一个表单上的所有文本框都完成时,我有一个if语句来运行一些代码,
我检查所有文本框目前不为空的方式如下
if (txtUserId.Text != ""
&& txtFirstName.Text != ""
&& txtLastName.Text != ""
&& txtCity.Text != ""
&& txtSTate.Text != ""
&& txtCountry.Text != "")
{
// Some code
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来写这个?
usr*_*usr 10
摘要检查成功能:
bool IsFilled(TextBox tb) { return tb.Text != ""; }
Run Code Online (Sandbox Code Playgroud)
然后你可以使用旧的,简化的代码,或者这个技巧:
var textBoxes = new [] { txtUserId, txtFirstName, ... };
if (textBoxes.All(tb => IsFilled(tb)) { ... }
Run Code Online (Sandbox Code Playgroud)
您获得的文本框越多,这可能就越具有可扩展性.
您还可以编写textBoxes.All(IsFilled)
由于方法组转换为委托而导致的工作.这稍微高一点,而且更短.但我发现方法组转换难以理解和误导.其他人可能会问你"这是做什么的?" 这表明代码味道.我不推荐它.