如何从c#中的特定点跳过特定代码? 假设在if条件下我正在使用另一个if条件并且我想跳过它,如果内条件如果条件变为假,我怎么能跳过那个较低的代码。那怎么能实现呢? 这是我的情景
if(true)
{
var discount = GetDicsount(price);
if(discount > 100)
{
//kill here and go away to from main if condition and skip do other work and move to GetType line directly
}
//Do Other Work
}
int type = GetType(20);
答案 0 :(得分:3)
您可以反转if
if (discount <= 100) {
// Do Other Work
}
没有命令可以从if
块中断,
但是你可以使用goto
但这会让你的代码更难以遵循。
我认为这里真正的问题不是很好的嵌套。
查看嵌套问题以及如何展平代码 所以它变得更易读,更容易理解:
https://en.wikibooks.org/wiki/Computer_Programming/Coding_Style/Minimize_nesting http://wiki.c2.com/?ArrowAntiPattern
所以你的代码看起来像这样,例如:
var discount = (int?) null;
if (someCondition)
{
discount = GetDiscount(price);
}
if (discount.Value <= 100)
{
// Do Other Work
}
int type = GetType(20);
答案 1 :(得分:2)
为什么不改变逻辑,以便颠倒if逻辑并在那里做其他工作?
if(true){
var discount = GetDiscount(price);
if(discount <= 100){
//Do Other Work
}
}
int type = GetType(20);
请注意,您的外部if语句始终为true。我假设这只是为了示例,但如果它是实际代码,您可以删除它:
var discount = GetDiscount(price);
if(discount > 100)
{
return;
}
//Do Other Work
如果你真的想做你所问的,你可以看一下goto(不推荐)。
if(true)
{
var discount = GetDiscount(price);
if(discount > 100)
{
goto last;
}
//Do Other Work
}
last:
int type = GetType(20);