这对我来说绝不是一个严重的问题,因为我已经解决了它,但我对差异以及为什么一个编译而另一个不会编译更感兴趣。请看以下示例:
这建立了。
Sub Foo()
Dim someL as IList(Of Integer) = New List(Of Integer)
Bar(someL)
End Sub
Sub Bar(ByRef argSomeL as IList(Of Integer))
'do stuff
End Sub
请注意,bar 的参数是 IList 的参数。而 SomeL 是一个实际的 List(Of Int) 以下将无法编译:
Sub Foo()
Dim someL as New List(Of Integer)
Bar(someL)
End Sub
Sub Bar(ByRef argSomeL as IList(Of Integer))
'do stuff
End Sub
他们不是都(Foo())用List而不是IList的参数调用Bar吗?