[英]Why my string comparison returns an unexpected result?
我正在嘗試創建一個帶有添加按鈕和一些信息文本框的表單。 當我單擊添加按鈕時,應閱讀文本框中給出的所有信息,並在列表視圖和樹視圖中顯示。 這是我的添加按鈕單擊事件代碼。
private void btnAdd_Click(object sender, EventArgs e)
{
if(txtBYear.Text == "" ||
txtGender.Text == "" || txtMSSV.Text == "" ||
txtName.Text=="" || cBoxClasses.Text == "")
{
MessageBox.Show("Missing information!", "Error");
return;
}
if (txtGender.Text !="Female" || txtGender.Text!="Male")
{
MessageBox.Show("Male or Female only!", "Error");
return;
}
var mssv = txtMSSV.Text;
var name = txtName.Text;
uint bYear;
bool gender;
var addr = txtAddress.Text;
uint cl = (uint)cBoxClasses.SelectedValue;
var clName = cBoxClasses.SelectedText;
if (txtGender.Text == "Female")
gender = true;
else
gender = false;
if (uint.TryParse(txtBYear.Text, out bYear))
{
MessageBox.Show("Incorrect Birth Year!", "Error");
return;
}
var newStudent = new Student(cl, mssv, name, bYear, gender, addr);
Classes x;
if(classes.GetClassesById(cl, out x))
{
x.AttendingStudents.Add(newStudent);
}
else
{
var tmp = new Classes(cl, clName);
classes.Add(tmp);
tmp.AttendingStudents.Add(newStudent);
}
lViewMain.Update();
tViewMain.Update();
}
我嘗試在txtGender文本框中鍵入“ Female”並執行按鈕單擊,但是我的比較返回true
,這使Messagebox
彈出。
為什么我的檢查textGender.Text != "Female" ||txtGender.Text != "Male"
返回該意外值?
該代碼執行了您要求的操作。 您的條件textGender.Text != "Female" ||txtGender.Text != "Male"
表示“如果該文本不是'Female'或該文本不是'Male'。
由於它不是“男性”,因此進入if塊。 您需要的是&&
運算符
請嘗試使用以下條件
textGender.Text != "Female" && txtGender.Text != "Male"
||
運算符的意思是“或”,如果其中任何一條為真,則返回真。
textGender.Text != "Female"
返回false
txtGender.Text != "Male"
返回true
這意味着textGender.Text != "Female" || txtGender.Text!= "Male"
textGender.Text != "Female" || txtGender.Text!= "Male"
返回true
它應該是
if (txtGender.Text !="Female" && txtGender.Text!="Male")
{
MessageBox.Show("Male or Female only!", "Error");
return;
}
因為,當文本不是女性而不是男性時,您會拋出一個錯誤,如果是其中之一,則讓它通過
textGender.Text != "Female" ||txtGender.Text != "Male"
如果txtGender.Text
為"Female"
, txtGender.Text != "Male"
true,因為txtGender.Text != "Male"
true
你想要的是
!(textGender.Text == "Female" ||txtGender.Text == "Male")
要么
textGender.Text != "Female" && txtGender.Text != "Male"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.