GridParser
和PointParser
类来自Parser
类。我怎么能把它们自己键入字典而不是它们的实例?它甚至可能吗?
public class GridParser : Parser {}
public class PointParser: Parser {}
var _dictionary = new Dictionary<int, Type>
{
{ 1 , GridParser },
{ 2 , PointParser }
};
答案 0 :(得分:4)
使用typeof运算符获取对象类型,然后将其存储在字典中。
public class GridParser : Parser {}
public class PointParser: Parser {}
var _dictionary = new Dictionary<int, Type>
{
{ 1 , typeof(GridParser) },
{ 2 , typeof(PointParser) }
};
<强>更新强> 根据下面的问题作者评论:在您创建字典后,您需要一个类型的实例,您可以使用Activator class这样的:
var t = _dictionary[0];
var some_var = (object)Activator.CreateInstance(t);
//Or dynamically
dynamic myDynVar = Activator.CreateInstance(t);