泛型类型的GetType

adr*_*anp 5 vb.net generics

我正在尝试使用基于约定的方法向Windsor注册演示者,但尝试在VB.NET中执行此操作,但问题是它不想编译此语句:

Dim type = GetType(AbstractPresenter(Of))
Run Code Online (Sandbox Code Playgroud)

我得到:AbstractPresenter的类型参数太少(Of TView,TPresenter)

我不明白,因为根据问题,这是一个有效的陈述.转换typeof(AbstractPresenter <>)时,在其他C#到VB.NET转换器中也显示有效.

有任何想法吗?

Kon*_*lph 7

有两个类型参数,您需要指定它,就像对多维数组一样:

Dim type = GetType(AbstractPresenter(Of ,))
Run Code Online (Sandbox Code Playgroud)

看起来很奇怪,但现在编译器知道AbstractPresenter需要两个类型的参数.

顺便说一句,C#具有相同的要求.所以上面的内容将写成:

var type = typeof(AbstractPresenter<,>);
Run Code Online (Sandbox Code Playgroud)