我正在處理自定義驗證程序,如果電子郵件地址或用戶名未發生更改,則該驗證程序需要失敗。 本質上,如果其中一個字符串比較爲真那麼它將通過驗證。我知道我忽略了一些簡單的東西。以下是我迄今爲止:檢查兩個項目是否已更改
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這個很好的解釋,並提及德摩根 –