一尘不染

扩展方法和动态对象

c#

我将在以下代码段中总结我的问题。

List<int> list = new List<int>() { 5, 56, 2, 4, 63, 2 };
Console.WriteLine(list.First());

上面的代码工作正常。

现在我尝试了以下

dynamic dList = list;
 Console.WriteLine(dList.First());

但是我得到了RuntimeBinderException。为什么会这样呢?


阅读 252

收藏
2020-05-19

共1个答案

一尘不染

为了扩展Stecya的答案…动态类型不 以扩展方法的形式 支持 扩展方法 ,即 以扩展方法的形式
调用它们,就像它们是实例方法一样。但是,这将起作用:

dynamic dList = list;
Console.WriteLine(Enumerable.First(dList));

当然,这可能有用也可能没有用。如果您可以提供有关为什么以及如何尝试使用动态类型的更多信息,我们可能会提供更多帮助。

2020-05-19