1

ここに私の問題があります:

いくつかの数学関数を含む dll があります。コードは次のようになります。

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

問題は、double 変数のみを操作し、あらゆる種類の数値 (UInt32、UInt64、Byte ...) を操作できる必要があることです。

他のクラスを作成する必要がありますか? それをジェネリッククラスにしますか?

クラスは、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

拡張メソッドを作成できます

Method を MathExpressionEvaluation クラスに追加したい場合は、次のような public static クラスを作成する必要があります。

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 に答える