在这段代码中使用goto
是否正确?有没有其他选择?
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;
。 (我假设合作伙伴是很酷的合作伙伴?)
关于c# - 使用 goto 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5485029/