C#我想在编译未定义的公式时修复它

时间:2018-06-25 02:36:35

标签: c#

我想创建一个在执行公式时定义公式的方法。

程序首次启动时,我想从数据结构中读取公式(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代码。

但是我认为它太复杂和无知了。我认为还有其他我不知道的关键字或方法可以解决此问题。

首次执行时,我想找到一种将字符串型公式固定到该方法的方法。

0 个答案:

没有答案