使用goto的最佳做法 [英] Best practice for using goto
本文介绍了使用goto的最佳做法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在此代码中使用goto
是否正确?还有其他选择吗?
Is it right to use goto
in this code? Are there any alternatives?
return ExecuteReader(cmd, reader =>
{
List<BEPartnership> partnerhip = null;
//Partnership
if (!((SqlDataReader) reader).HasRows)
goto exit;
partnerhip =
new List<BEPartnership>{new BEPartnership().GetFromReader(reader)};
//Customers
if (!reader.NextResult() && !((SqlDataReader) reader).HasRows)
goto exit;
foreach (BEPartnership p in partnerhip)
p.Partner = new BECustomer().GetFromReader(reader);
//Contracts
if (!reader.NextResult() && !((SqlDataReader) reader).HasRows)
goto exit;
List<BEContractB2B> contracts = new List<BEContractB2B>();
contracts.Add(new BEContractB2B().GetFromReader(reader));
// contracts = new BEContractB2B().GetFromReader2(reader).ToList();
exit:
return partnerhip;
});
推荐答案
如果希望返回当前填充的列表,则可以将每个goto exit;
替换为return null;
或return partnerhip;
. (我认为合作伙伴是很酷的合作伙伴吗?)
You can replace each goto exit;
with return null;
or return partnerhip;
if you wish to return the currently populated list. (I assume a partnerhip is a cool partner?)
这篇关于使用goto的最佳做法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文