> >将实例化system.type作为通用类>
>的类型参数,该问题围绕着构建通用类的可行性的问题实例化类型实例。具体而言,可以创建MyGenericClass&lt; mytype&gt;在哪里动态确定myType?>直接方法导致编译器错误“找不到类型或名称空间'mytype'。为了克服此限制,反射提供了解决方案。使用反射,可以动态创建与通用类的类型参数兼容的类型。以下是一个示例:public class Generic<T> { public Generic() { Console.WriteLine("T={0}", typeof(T)); } } class Test { static void Main() { string typeName = "System.String"; Type typeArgument = Type.GetType(typeName); Type genericClass = typeof(Generic<>); // MakeGenericType is badly named Type constructedClass = genericClass.MakeGenericType(typeArgument); object created = Activator.CreateInstance(constructedClass); } }请注意,该示例使用单个类型参数,但支持多个参数。要省略具有多个参数的通用类的类型参数,如下示例所示,包括占位符中的逗号:
Type genericClass = typeof(IReadOnlyDictionary<>, <>); Type constructedClass = genericClass.MakeGenericType(typeArgument1, typeArgument2);
以上是我可以将实例化system.type作为c#中的通用类型参数传递吗?的详细内容。更多信息请关注PHP中文网其他相关文章!