我正在处理自定义验证程序,如果电子邮件地址或用户名未发生更改,则该验证程序需要失败。 本质上,如果其中一个字符串比较为真那么它将通过验证。我知道我忽略了一些简单的东西。以下是我迄今为止:检查两个项目是否已更改
bool emailChanged = Domain.Validation.ItemsHaveChanged(txtEmailAddress.Text, emailAddress);
bool userNameChanged = Domain.Validation.ItemsHaveChanged(txtUserName.Text, userName);
// make sure at least the email or username has changed.
if (!emailChanged || !userNameChanged)
{
args.IsValid = false;
cvAccountChange.ErrorMessage = "There haven't been any changes to the account.";
}
这里是方法ItemsHaveChanged
public static bool ItemsHaveChanged(string param1, string param2)
{
return string.Compare(param1.Trim(), param2.Trim()) != 0;
}
一个更好的办法,看看这是推理当输入是*有效*时。如果电子邮件已更改**或**用户名已更改,则该输入有效:“emailChanged ||” userNameChanged'。因此,如果相反的话,输入无效:'!(emailChanged || userNameChanged)'。然后,[De Morgan's law](http://en.wikipedia.org/wiki/De_Morgan%27s_laws)声明这相当于'!emailChanged &&!userNameChanged'。因此,'&&'。 –
Mattias,+1这个很好的解释,并提及德摩根 –