我在我的代码中调用三个函数,我想验证我的一些字段.
当我尝试使用下面给出的代码时.它只检查第一个值,直到它得到错误的结果.
当我尝试使用下面给出的代码时.它只检查第一个值,直到它得到错误的结果.
我想要一些类似的东西,如果fisrt函数返回true,那么它也应该调用next函数,依此类推.可以使用什么代替Or运算符来执行此操作.
if (IsFieldEmpty(ref txtFactoryName,true,"required") || IsFieldEmpty(ref txtShortName,"required") || IsFieldEmpty(ref cboGodown,"required")) { }
编辑
public bool IsFieldEmpty(ref TextBox txtControl,Boolean SetErrorProvider,string msgToShowOnError) { ErrorProvider EP = new ErrorProvider(); if (txtControl.Text == string.Empty) { EP.SetError(txtControl,msgToShowOnError); return true; } else { EP.Clear(); return false; } }
我正在检查winform中的onSubmit事件验证.
解决方法
你可以使用单个|对于OR:
if (IsFieldEmpty(ref txtFactoryName,"required") | IsFieldEmpty(ref txtShortName,"required") | IsFieldEmpty(ref cboGodown,"required")) { }
双管||正在执行short-circuit evaluation,single version |做全面评估.
同样的&&和& ;.
对编辑的回应:
> txtControl前面不需要’ref’,删除它会对解决你的方法的批评有很大的帮助. IsFieldEmpty不对txtControl进行任何更改.您可以重命名为CheckFieldEmpty以进一步改进它.>在这个方法中创建一个ErrorProvider实例很奇怪,这样做有用吗?表格上通常应该有一个(永久)实例.您可能希望此方法独立于Form,因此只需添加一个EP作为参数.它可以替换SetErrorProvider,可以检查EP参数是否为null. O,并替换EP.Clear();与Ep.SetErrortxtControl,“”);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。