如何根据另一个变量在不同的if条件之间进行选择

时间:2014-05-23 18:33:40

标签: c# design-patterns

我已经考虑过这个问题已经有一段时间了,但我无法在不必编写重复代码的情况下考虑解决方案。部分c#和部分伪代码中的问题:

bool test = true;  
if (test == true)
{
    if(first condition) {code}
}
else
{
    if(different condition) {same code as above)
}

我必须在程序的性能密集部分中使用此部分,并且我必须传输3个大参数,这就是我不想使用方法的原因。

还有另一种解决方法吗?

4 个答案:

答案 0 :(得分:5)

if((test && firstCondition) || (!test && differentCondition)) {
    //code
}

答案 1 :(得分:3)

if ((test && first_condition) || (!test && different_condition)) {
    callSomeFunction();
}

答案 2 :(得分:0)

我这样做:

// create an inline function to capture the  
Action workAction = () => { //work; }

bool test = true;  
if (test == true)
{
    if(first condition) {workAction(); }
}
else
{
    if(different condition) {workAction(); ) 
}

答案 3 :(得分:0)

根据条件的复杂程度,这种方法有时可以提供帮助:

bool doBigCall = false;
if (test1)
{
    if (test2)
    {
        doBigCall = true;
    }
    else
    {
        // ...
    }
}
else
{
    // ...
}
if (doBigCall)
{
    // write the big bit of code just once
}