函数指针而不是if语句

时间:2013-06-28 15:09:57

标签: c# if-statement function-pointers

使用函数指针而不是if语句是否有意义。如果if语句可能会为大多数程序运行返回相同的结果吗?

一个比另一个更有效吗?

示例:如果声明

public int getValue()
{
    if(_systemReady == true)
    {
        ...Do Something
        return intResult;
    }
    else
    {
        ...Do Something else
        return intResult;
    }
}

public void systemStateChanged(bool b)
{
    _systemReady = b;
}

可写成如下:函数指针

private Func<int> _GetValue;

public int getValue()
{
    return _GetValue();
}

public void systemStateChanged(bool b)
{
    _systemReady = b;
    if(_systemReady == true)
    {
         _GetValue = DoSomething;
    }
    else
    {
         GetValue = DoSomethingElse;
    }
}

由于

0 个答案:

没有答案