我对声明函数指针的 C# 方式感到困惑。我想在函数内声明一个函数指针变量,而不必添加类成员或类似的东西。
我正在尝试的是:
System.Func<KeyCode, bool> inputCheck = activeCharacter.continuous_fire ? Input.GetKey : Input.GetKeyDown;
我也尝试过使用Action
(但显然它没有返回值)和delegate
,但显然我弄错了。
我可以以某种方式做到这一点(即我只是语法错误),还是唯一的方法是首先声明一个delegate
原型?
编辑:澄清一下,目前我必须这样做:
bool do_fire=false;
if (activeCharacter.continuous_fire)
{
if (Input.GetKey( Fire ))
{
do_fire=true;
}
}
else
{
if (Input.GetKeyDown( Fire ))
{
do_fire=true;
}
}
由于这看起来很糟糕而且多余(而且多余几乎总是错误的),我只想将 Input.* 函数放在一个变量中并检查它。
伪代码:
bool do_fire=false;
function keyCheck = activeCharacter.continuous_fire ? Input.GetKey : Input.GetKeyDown;
if (keyCheck( Fire ))
{
do_fire=true;
}