私はあらゆるタイプの関数を呼び出すための良い方法を考えようとしています。voidまたは戻り値、パラメータなしまたは多数。この関数の実行時間を計る必要があり、これをすべてクライアントから隠したいと思います。したがって、クラスを使用して任意のタイプの関数を呼び出す方法をクライアントコードに提供したいだけです。そうすると、クラスがそれを実行して時間を計測し、クライアントに戻ります。
私が理解できない部分は、あらゆるタイプの機能をサポートする方法です。デリゲートにはタイプが必要です。funcは返品が必要です。クライアントがパラメータを設定するための最小限の作業と、戻り値(存在する場合)を取得するための最小限の作業を実行するようにする、ある種のジェネリックが必要です。
これは反省なしで可能ですか?ここではパフォーマンスが非常に重要です。
私は次のようなクライアントコードを想像することができます:
Recorder r = new Recorder();
r.Params.Add(param);
r.Params.Add(param);
r.CallFunc([function]);
MyReturnType ret = (MyReturnType)r.returnValue;
それは実行可能だと思いますか?