动态语言运行时(DLR)中的后期绑定与缓存机制解析
1. 后期绑定示例代码分析
在介绍后期绑定和缓存机制之前,先来看一个简单的示例代码:
private static void RunConstantBinderExample()
{
CallSiteBinder binder = new ConstantBinder();
CallSite<Func<CallSite, object, object, int>> site =
CallSite<Func<CallSite, object, object, int>>.Create(binder);
//This will invoke the binder to do the binding.
int result = site.Target(site, 5, 6);
Console.WriteLine("Result is {0}", result);
}
在这个示例中, CallSite<T> 中的泛型类型 T 有特定的要求:
- 它必须是委托类型。
- 委托的第一个参数类型必须是 CallSite 。
在上述代码中, T 是 Func<CallSite, object, object, int> ,这意味着后期
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



