我有两种方法,其中一种方法检查库存和其他方法调用其他方法的系列。
检查库存方法。
public void checkStock()
{
foreach (var listBoxItem in listBox1.Items)
{
if (Convert.ToInt32(GetStock(listBoxItem.ToString())) == 0)
{
MessageBox.Show(listBoxItem.ToString() + " not in Stock!. Please delete the item before proceeding");
}
}
}
另一种方法是
private void SaveAllListItems()
{
string listItems = string.Empty;
foreach (var listBoxItem in listBox1.Items)
{
listItems += listBoxItem.ToString();
if (listBox1.Items.IndexOf(listBoxItem) < listBox1.Items.Count - 1)
{
listItems += ", ";
}
}
checkStock();
UpdateStock();
InsertUser(maskedTextBox1.Text, comboBox1.Text, maskedTextBox2.Text, maskedTextBox3.Text, maskedTextBox4.Text, maskedTextBox5.Text,
maskedTextBox6.Text, maskedTextBox7.Text, maskedTextBox8.Text, maskedTextBox9.Text);
InsertOrder(Convert.ToInt32(GetID(maskedTextBox1.Text)), orderNumber(), listItems, DateTime.Now, maskedTextBox10.Text, get_next_id());
}
如果第一个方法显示消息框,我想停止代码执行。
什么是快速解决方案?
答案 0 :(得分:2)
在必须中断执行的情况下执行return;
,这将退出当前正在运行的方法。
或者,如果你想要停止执行这两个方法,那么你要么抛出一个异常(如果是这种情况,你想通过异常在代码中处理这样的情况)或让方法返回一个布尔值实例,如果一切正常,则返回true,如果消息框情况出现,则返回false,然后在main方法中,您知道必须中断。像这样:
if (!checkStock()) { return; }
答案 1 :(得分:2)
切换支票的退货类型
public bool checkStock()
{
foreach (var listBoxItem in listBox1.Items)
{
if (Convert.ToInt32(GetStock(listBoxItem.ToString())) == 0)
{
MessageBox.Show(listBoxItem.ToString() + " not in Stock!. Please delete the item before proceeding");
return false;
}
}
return true;
}
并在主代码中执行以下操作:
if (!checkStock())
{
//EXIT
return;
}
答案 2 :(得分:1)
最简单,最快捷的方法是从checkStock()
方法返回一个布尔值:
public bool checkStock()
{
foreach (var listBoxItem in listBox1.Items)
{
if (Convert.ToInt32(GetStock(listBoxItem.ToString())) == 0)
{
MessageBox.Show(listBoxItem.ToString() + " not in Stock!. Please delete the item before proceeding");
return false;
}
}
return true;
}
然后在checkStock()
方法中调用SaveAllListItems
后对该值采取行动:
if (!checkStock())
return;
这将立即退出SaveAllListItems
方法,而不再执行其中的代码。
进一步建议:将checkStock()
的访问者从public
更改为protected
或private
- 您不太可能需要访问这来自课堂/表格之外。
答案 3 :(得分:0)
return;
将立即停止并返回而不执行其余的方法。
答案 4 :(得分:0)
你应该使用MessageBox.Show()的一个重载函数吗?
例如: public static MessageBoxResult Show( string messageBoxText, 字符串标题, MessageBoxButton按钮 )
因此循环可以检查MessageBoxResult。