【发布时间】:2014-08-21 13:18:44
【问题描述】:
我有 2 组控件。
第一个包含 3 个名为 a、b 和 c 的文本框。它们都可以同时启用或禁用。
第二组包含 2 个文本框(d 和 e)。一次只启用一个。
现在,我有一个布尔变量(名为 ok),如果:
- a、b 和 c 中的至少一个已启用并且包含文本
- 启用的第二组的文本框包含文本
- 如果不包含文本,则无法启用任何内容
我想一键完成所有检查。
这是我得到的:
bool ok =
(
(
(
(!a.IsEnabled ||
(a.IsEnabled && !String.IsNullOrWhiteSpace(a.Text))) &&
(!b.IsEnabled ||
(b.IsEnabled && !String.IsNullOrWhiteSpace(b.Text))) &&
(!c.IsEnabled ||
(c.IsEnabled && !String.IsNullOrWhiteSpace(c.Text))) &&
(a.IsEnabled || b.IsEnabled || c.IsEnabled)
)
) &&
(
(!d.IsEnabled ||
(d.IsEnabled && !String.IsNullOrWhiteSpace(d.Text))) &&
(!f.IsEnabled ||
(f.IsEnabled && !String.IsNullOrWhiteSpace(f.Text)))
)
);
看起来很重,有什么想法可以简化吗?
【问题讨论】:
标签: c# logic isenabled isnullorempty