我想创建一个在执行公式时定义公式的方法。
程序首次启动时,我想从数据结构中读取公式(XML)并将其固定为方法。
double SomeThing_Calculate(double[] v)
{
double result;
result = ???;
return result;
}
如果我输入“ A * B + C-(D * A)” xml或excel等...
然后result = v[0] * v[1] + v[2] - (v[3]*v[0]);
void GetDamage(DmgInfo dmgInfo)
{
GetStat(StatType.HP) = ???;
}
如果我输入“ HP-(1-Armor)* _dmgInfo.damage” [下划线表示参数值]
然后GetStat(StatType.HP) = GetStat(StatType.HP) - (1-GetStat(Armor))*dmgInfo.damage;
我不确定。 Eval关键字似乎无法产生与直接在代码上编写相同的性能。
我知道如何使用C#IL生成相同的代码。
程序运行时,它将分析公式,并使用Reflection
查找方法并插入IL代码。
但是我认为它太复杂和无知了。我认为还有其他我不知道的关键字或方法可以解决此问题。
首次执行时,我想找到一种将字符串型公式固定到该方法的方法。