使用函数指针而不是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;
}
}
由于