没有类型的IEnumerable属性

本文关键字:IEnumerable 属性 类型 | 更新日期: 2023-09-27 18:23:42

我正在尝试制作一个类似官方DataGrid.ItemsSource的属性,来自MSDN:

public IEnumerable ItemsSource { get; set; }

这提供了对任何派生类中的任何类型的支持。有了这个,我可以设置类似的东西

var list = new List<ObservableCollection<KeyValuePair<decimal, bool>>>();
MyDataGrid.ItemsSource = list;

但是,当我试图使IEnumerable的属性不带类型T时,正如MSDN所说,我在VisualStudio:上遇到了一个错误

Using the generic type 'System.Collections.Generic.IEnumerable<T>' requires 1 type arguments

那么,怎么了?

没有类型的IEnumerable属性

您需要使用非泛型类型System.Collections.IEnumerable
(注意不同的名称空间)

请注意,在.Net 4.0+中,您可以使用IEnumerable<object>(由于协方差)。