這裏是我的代碼:否則,如果求值BOOL錯誤
if (addNewRecord == false)
{ MessageBox.Show("No action selected. \nSave cancelled."); }
else if (editCurrentRecord == false)
{ MessageBox.Show("No action selected. \nSave cancelled."); }
else{.....}
addNewRecord
和editCurrentRecord
是我檢查這兩個布爾變量有true
值。當我按照上述方式操作時,信息框仍然會顯示爲bools爲false
。但是,如果我只註釋掉ELSE IF
,它將按照預期繼續使用ELSE
。我在這裏錯過了什麼?感謝您的任何意見。
編輯:兩個messageboxes不顯示只有一個。我正在用MessageBox.Show(addNewRecord.ToString())檢查IF語句之前的兩個bools的值;而另一個bool則是相同的。他們按預期工作。這個問題只會發生在我試圖評估兩個bools時,或者使用OR語句或者使用OR語句。
這裏是所有相關代碼:
namespace E_Z_Rent
{
public partial class Bookings : Form
{
bool addNewRecord = false;
bool editCurrentRecord = false;
public Bookings()
{
InitializeComponent();
}
private void bookingsBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
MessageBox.Show(addNewRecord.ToString());
MessageBox.Show(editCurrentRecord.ToString());
if (addNewRecord == false)
{ MessageBox.Show("No action selected. \nSave cancelled."); }
else if (editCurrentRecord == false)
{ MessageBox.Show("No action selected. \nSave cancelled."); }
else
{
MessageBox.Show("OK");
}
}
private void EditFieldsCheckBox_CheckedChanged(object sender, EventArgs e)
{
if (EditFieldsCheckBox.Checked == true)
{
editCurrentRecord = true;
}
else
{
editCurrentRecord = false;
}
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
addNewRecord = true;
}
}
}
我有它的工作如預期做:
if (addNewRecord == true || editCurrentRecord == true){
MessageBox.Show("OK");
}
else
{
MessageBox.Show("No action selected. \nSave cancelled.");
}
我仍然這樣puzzeled因此,如果任何人都可以說,爲什麼會這樣我會檢查回來。感謝所有人的建議。
你說的是不可能的。 – 2013-04-10 12:26:32
你什麼時候執行該代碼,以及什麼時候檢查過? – 2013-04-10 12:27:00
嘗試重構if(!addNewRecord ||!editCurrentRecord)){MessageBox.show(...); } else {....} – vidario 2013-04-10 12:27:15