【发布时间】:2010-12-24 02:31:35
【问题描述】:
我有一个方法要求输入类型<T>。它只要求此类型定义了 Count 属性。如何将其指定为允许所有定义了Count 的对象的类型约束?
这是我目前拥有的:
private static void writeData<T>(String fileName, T rawData) where T : ICollection
但是,如果我尝试将它与 IDictionary 一起使用,这将不起作用。我还能尝试什么?
更新:我认为问题在于我将其限制为非通用ICollection,而不是通用ICollection<E>。
【问题讨论】:
-
定义
this won't work。这应该可以正常工作。 -
你是指 IDictionary
吗?由于 IDictionary impelements ICollection -
您正在寻找一种叫做“结构类型”的东西。请参阅stackoverflow.com/questions/2831175/…,它询问与 Scala 构造等效的 C#。我在网上找到的答案是(简而言之)“否”:(