0

我有一个搜索字段,当它没有值时,它将作为“”传递。如 Visual Studio 异常详细信息中所述。所以我试图处理这个值,但这些都没有成功: -

if (UserName != null || !String.IsNullOrWhiteSpace(UserName) || !String.IsNullOrEmpty(UserName) || UserName != "" ){
 UserPrincipal user = UserPrincipal.FindByIdentity(context, UserName);
if (user == null) {
 yield return new ValidationResult("UserName does not exsists."); }

但即使该字段留空,代码也会到达

UserPrincipal user = UserPrincipal.FindByIdentity(context, UserName);

并且将引发异常。

4

4 回答 4

6

string.IsNullOrEmpty( UserName )

将涵盖您在该测试表达式中已经在做的大部分事情。

我能看到的唯一另一件事是 IsNullOrWhiteSpace 检查,但所有额外!= ""的都是完全多余的。

于 2013-07-17T09:57:07.270 回答
3

如果表达式之一将返回 true,则需要在 if 语句中使用 && 运算符,则整个表达式将为 true

于 2013-07-17T09:56:01.120 回答
1

你只需要使用String.IsNullOrWhiteSpace(UserName)rest都是多余的。IsNullOrWhiteSpace()还测试空白。

于 2013-07-17T10:07:10.707 回答
0
if (UserName != null && !String.IsNullOrWhiteSpace(UserName) &&!String.IsNullOrEmpty(UserName) && UserName != "" ){
 UserPrincipal user = UserPrincipal.FindByIdentity(context, UserName);
if (user == null) {
 yield return new ValidationResult("UserName does not exsists."); }
于 2013-07-17T10:11:11.573 回答