【发布时间】:2017-06-06 11:40:26
【问题描述】:
具有讽刺意味的是,在将一堆旧 Arraylist 转换为使用泛型 List(Of foo) 集合以提高类型安全性时,我在 List.AddRange() 方法中遇到了意外行为。
鉴于下面的代码,我本来预计会出现编译器错误,但我没有得到一个,并且项目一直运行到 AddRange 调用,其中 'Unable to cast List(Of bar) to List( of foo)' 抛出异常。
Dim barList As List(Of bar) = BarFunctionsLib.GetBarList()
Dim fooList As New List(Of foo)
fooList.AddRange(barList)
我尝试将 List(Of bar) 传递到 List(Of foo) 上的 AddRange 方法中的尝试不应该被编译器拾取吗?我没有通过我在 VS2015 中的编译器设置,也许它们过去被摆弄过,现在让它通过?
任何想法都将不胜感激,因为将 Arraylists 转换为通用 Lists 的全部理由是为了防止这样的错误。
【问题讨论】:
标签: .net vb.net visual-studio generics