我有兩個不同的按鈕點擊呼叫同一功能的修改版本...如果一個無效函數返回,那麼如何停止下一個函數調用的執行?
private void button1_Click(object sender, EventArgs e)
{ SendEmail(); }
private void button2_Click(object sender, EventArgs e)
{ SendRevisedEmail();}
public void SendEmail()
{
DataManip(ref item1, ref item2); //This is where I'd like the next 2 functions to not process if this one fails.
UpdateDB(ref item1, ref item2);
sendTechEmail(ref item1, ref item2);
}
public void SendRevisedEmail()
{
DataManip(ref item1, ref item2); //This is where I'd like the next 2 functions to not process if this one fails.
UpdateDB2(ref item1, ref item2);
sendRevisedTechEmail(ref item1, ref item2);
}
在DataManip
功能,我在窗體上進行一些檢查,並設置拋出一個彈出消息和返回;如果它不出來flag1 = true
。
public void DataManip(ref string item1, ref string item2)
{
bool flag1 = false;
foreach (Control c in groupBox1.Controls)
{
Radiobutton rb = c as RadioButton;
if rb != null && rb.Checked)
{
flag1 = true;
break;
}
}
if (flag1 == true)
{
//Manipulate Data here
}
else if (flag1 != true)
{
MessageBox.Show("You didn't check any of these boxes!");
return;
};
}
截至目前,DataManip
的flag1檢查工作正常。如果缺少groupBox1中的條目,我可以驗證它是否不處理數據更改。
問題是在SendEmail()
和SendRevisedEmail()
函數內,它仍然在DataManip(ref item1, ref item2)
之後處理其他函數的調用。
我該如何導致出錯DataManip
並阻止/跳過其他兩個函數調用執行?
你爲什麼通過引用傳遞一切?這是不尋常的,這是一個好主意...... –
這樣的行中的星號是什麼:'** DataManip(ref item1,ref item2); **'? – Greg
因爲我只在c#編程了一個星期,而且這似乎是一個好主意...... – BigIrishApe