有没有办法创建嵌套的开放泛型类型?
Is there a way to create a nested open generic type?
在 C# 中很容易创建一个开放的泛型,typeof(IEnumerable<>)
。有没有办法创建一个包含开放泛型的类型?以下不起作用:typeof(IEnumerable<IFoo<>>)
.
没办法。这些不是通用但未绑定的类型,这些是特殊类型,无法实例化。未绑定泛型类型只能在直接类型表达式中使用。
当您使用 typeof(IEnumerable<IFoo<>>)
时,您不是在 typeof 表达式中而是在 IEnumerable<T>
表达式中使用未绑定类型。
获取所涉及的两个未绑定泛型类型,然后使用一个作为从另一个创建泛型类型的参数:
typeof(IEnumerable<>).MakeGenericType(typeof(IFoo<>))
在 C# 中很容易创建一个开放的泛型,typeof(IEnumerable<>)
。有没有办法创建一个包含开放泛型的类型?以下不起作用:typeof(IEnumerable<IFoo<>>)
.
没办法。这些不是通用但未绑定的类型,这些是特殊类型,无法实例化。未绑定泛型类型只能在直接类型表达式中使用。
当您使用 typeof(IEnumerable<IFoo<>>)
时,您不是在 typeof 表达式中而是在 IEnumerable<T>
表达式中使用未绑定类型。
获取所涉及的两个未绑定泛型类型,然后使用一个作为从另一个创建泛型类型的参数:
typeof(IEnumerable<>).MakeGenericType(typeof(IFoo<>))