c#中定义较少的泛型?

Wam*_*Wam 3 c# generics collections

有没有办法使用泛型类的集合,而不提供底层类型?我们来解释一下:

这是我想要的:

class TimeSerie<TValue> {
enter code here
}

List<TimeSerie<?>> blah;
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所要做的:

class TimeSerie {}
class TypedTimeSerie<TValue> : TimeSerie {}

List<TimeSerie> blah;
Run Code Online (Sandbox Code Playgroud)

那么,任何方式使用漂亮的第一个解决方案?(虽然我想在尝试施放时会引发问题,例如循环...)

Jon*_*eet 8

您也可以使用代码通用...但在某些时候您必须指定类型参数.如果不知道类型参数,您将无法创建泛型类型的实例.如果必须,您可以在执行时使用反射提供该信息,但必须以某种方式存在.

  • @David:请不要那样做!我每天都会在答案中犯错......如果他们没有被社区捡起来,他们将永远保持错误:( (5认同)
  • @David:显然不是.关于Jon,他的答案通常非常好,他的一些答案似乎得到了很多选票,他们旁边有100k + rep,而更好的答案在页面底部附近萎靡不振.我甚至会说,乔恩回答一个问题可能会阻止其他人回答那些受到声誉系统激励的人. (4认同)
  • 为了澄清,我认为Jon的意思是代替`List <TimeSerie <?>> blah;`你需要`List <TimeSerie <T >> blah;`其中T是这个声明的类或方法的泛型参数出现. (2认同)