1

这是我的问题:

我有一个包含一些数学函数的 dll,代码看起来是这样的:

internal sealed class TemplateSourceCodeClass
{
    public const string MathExpressionEvaluationCode =
    @"using System;
        class MathExpressionEvaluation
        {
            public object Eval(double value)
            {}
            public double abs(double dValue)
            {}

问题是它只操纵双变量,我需要能够操纵各种数字(UInt32,UInt64,字节......)

我应该写另一门课吗?并使其成为通用类?

该类由dll(另一个类)中的某些方法调用

public class MathExpressionEvaluator : BaseEvaluator
{
    static private CSharpCodeProvider _csharpCodeProvider;
    static private Dictionary<string,object>  equations;
    public MathExpressionEvaluator()
    {}
   public void Compile(string formulaString)
    {}
  • 我无权访问 dll 的代码

如果问题不够清楚,我很抱歉,但如果您需要进一步说明,请询问

任何帮助都可能有用

我在论坛上搜索并没有找到对我有帮助的东西,但是如果您认为问题已经得到解答,请给我链接

非常感谢你

4

1 回答 1

3

你可以创建一个扩展方法

如果要向 MathExpressionEvaluation 类添加方法,则必须创建一个像这样的公共静态类:

public static class Extentions
{
    public static object Eval(this MathExpressionEvaluation mathExpress, double value)
    {
        double x = value;
        object o = null;
        o= value;
        return o;
    }
}

之后你可以像这样使用你的方法:

MathExpressionEvaluation mathExpression = new MathExpressionEvaluation();
object o = mathExpression.Eval(1);

希望有帮助!

于 2013-06-17T06:40:51.730 回答