ここで何を求めているのかを正確に収集するのは難しいですが、匿名関数を使用して「拡張機能」を定義し、次のようにルックアップテーブルに保存することができます。
アイデアを示すために、いくつかの基本的なサンプルコードと1つの再帰的な例を次に示します。
Func<long,long> sqr =
( x ) =>
{
return x * x;
};
Func<long,long> factoral =
( n ) =>
{
return n > 1 ?
n * ( long )( MethodInfo.GetCurrentMethod().Invoke( null, new object[] { n - 1 } ) ) :
n;
};
var DataObjects = new []
{
new { Name = "sqr(1)!", Value = factoral( sqr( 1 ) ) },
new { Name = "sqr(2)!", Value = factoral( sqr( 2 ) ) },
new { Name = "sqr(3)!", Value = factoral( sqr( 3 ) ) },
new { Name = "sqr(4)!", Value = factoral( sqr( 4 ) ) },
new { Name = "sqr(5)!", Value = factoral( sqr( 5 ) ) },
};
DataObjects.ToList().ForEach
(
d =>
Console.WriteLine( d )
);
出力を生成します:
名前sqr(1)!値1
名前sqr(2)!値24
名前sqr(3)!値362880
名前sqr(4)!値20922789888000
名前sqr(5)!値7034535277573963776
お役に立てれば、