【问题标题】:How to make AddRange type-safe如何使 AddRange 类型安全
【发布时间】:2021-10-17 19:46:47
【问题描述】:
我在vb.net 中有这个虚拟代码
Sub dummy()
Dim a = New List(Of XDocument)
Dim b = New List(Of Net.Mail.MailAddress)
b.AddRange(a)
End Sub
显然,这永远行不通。但编译器会忽略它。
如何强制VS 在编译时标记这个?
谢谢
【问题讨论】:
标签:
vb.net
visual-studio
generics
compile-time
【解决方案1】:
编译器只允许这样做,因为你有Option Strict Off。您基本上应该在项目级别始终使用Option Strict On,并且仅在您实际需要使用后期绑定的极少数情况下在文件级别设置Off。即使这样,您也应该只在那些实际需要它的特定文件中设置它Off,并且您应该使用部分类将这些文件中的代码保持在绝对最低限度。
在您的项目属性中设置Option Strict On,编译器会正确地将其标记为错误代码,并且您很有可能会看到其他问题区域也突出显示。您还应该在 VS 选项中将其设置为 On,以便将来所有项目默认为 On。