-1

可能重复:
c#中的扩展方法和动态对象

例如:

var obj = new byte[] { 1, 2, 3 };
dynamic dobj = obj;

dobj.Count(); // fails
Enumerable.Count(dobj); // works
4

1 回答 1

1

它不起作用,因为知道要调用哪个扩展方法需要知道源代码在编译之前的样子(包括知道using存在哪些指令)。在运行时,此信息不可用。您使用的解决方法是一个很好的方法。

于 2012-02-01T12:42:41.640 回答