也许它很简单,但我没有使用类型Type
和它的用途。
假设我想List<T>
用T
=Double
或T
=创建一个UInt32
,这取决于某些函数的结果,比如说public static Type CheckType(String input);
在代码中:
Type t = Program.CheckType(someInput); // it returns typeof(Double) or typeof(UInt32)
if (t == typeof(Double))
List<Double> l = new List<Double>();
else
List<UInt32> l = new List<UInt32>();
我知道上面的代码不会编译,因为我让它l
有两种不同的含义(一个 double 列表和一个 unsigned int 列表)......所以它导致了我的问题:
- 有没有办法避免
if
上面的代码?
与此类似的东西:
Type t = Program.CheckType(someInput);
List<t> l = new List<t>(); // I know this won't compile either...
我的意思是,这通常会实例化一个通用列表......
先感谢您!
编辑:
这不是标记问题的重复,仅出于一个原因:并且不是匿名类型!这里的问题是如何确定某些输入数据的类型(例如,将是=或= ),从而基于该输入数据类型创建一个泛型,!Double
UInt32
Type T
typeof(Double)
Type T
typeof(UInt32)
SampleClass<T>
T
换句话说:Type T
在运行时确定一些,然后用确定的类型实例化一个泛型类型T
。抱歉,如果我之前没有说清楚...
PS:我List<T>
以SampleClass<T>
.