使用函数指针而不是 if 语句是否有意义。如果大多数程序运行时,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;
}
}
谢谢