![]() |
1
29
让泛型类从非泛型基继承,或实现非泛型接口。然后,您可以拥有这种类型的集合,并在用于访问集合内容的任何代码中进行强制转换。 下面是一个例子。
|
![]() |
2
8
我能想到的唯一方法是,从我的头顶上看,如下(包裹在一个控制台应用程序中进行测试):
也就是说,让MyClass实现一个空接口,然后将您的集合创建为包含实现该接口的类实例的集合。 更新: 我在接口中添加了一个“getValue”方法,允许您作为对象访问myClass实例的“value”。如果你想拥有一个可以容纳混合类型的集合,那么这个集合就和它将要得到的一样好。 |
![]() |
3
3
您需要为MyClass定义一个基类,然后您的集合将是一个基类列表。前任:
|
![]() |
4
3
我的大多数泛型类型上都有与“非类型化”成员的接口:
您也可以通过使用显式接口实现来实现这一点,但在我看来,使用单独的名称要容易得多。(还有一些关于显式接口实现的CA提示) |
![]() |
5
3
您希望有一个MyClass集合,对于该集合,类型参数t的值在每个实例中都是不同的。在.NET中,这是不可能的;它缺少等价于Java通配符(?)。您需要做的是创建一个非泛型基类或接口,MyClass可以实现它。例如:
|
![]() |
6
2
我认为这里的问题是泛型类实际上根本不是同一类型。它们只是在编译时创建整个新类型的模板(如果我理解正确的话)。因此,
当然,您可以让它们实现一个接口、继承一个基对象或任何其他已经给出的选项。看一看 commongenius' answer 为了一个好方法。 |
![]() |
7
2
自.NET 3以来 CompositeCollection 类,该类允许在其中包含多个唯一项甚至集合。WPF开发人员使用它在XAML中存储和显示不同的项。但这并不意味着它不能用于非WPF情况。 下面是一个示例,我在其中存储从字符串到小数的不同内容,并提取和枚举所有项,然后是特定类型的项:
|
![]() |
8
1
|
![]() |
9
1
伊利斯特
无法定义可接受泛型类任何风格的泛型集合…工业工程
然后你可以说
|