很难收集你在这里问的到底是什么,但听起来你可能想使用一些匿名函数来定义你的“扩展”,然后你可以像你说的那样将它们存储在一个查找表中:
这是一些基本的示例代码,带有一个递归示例,以演示该想法:
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
希望这可以帮助,