Fio*_*ite 6 vb.net compiler-construction generics type-safety
现在,作为一名C#程序员,我知道泛型很棒.但是,当涉及到某些VB.NET时,我发现以下内容不会导致编译器错误:
Dim instance As List(Of Integer)
instance.Add(True)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我知道你不需要使用VB.NET,但我认为这会杀死使用泛型的主要原因 - 类型安全.
编辑:我没有严格的选项,因为这不是一个真正的编程练习,只是我在理论上看一下VB.NET.这是一个理论问题,因为我期望它甚至在选项严格关闭时导致编译器错误,就像泛型类型的一个特性一样.
Aak*_*shM 10
没有Option Strict On,VB.NET很乐意隐式转换Boolean为Integer.我强烈建议您(尤其是来自C#背景)Option Strict On为VB.NET工作做出默认设置.
您可以在Tools| 中的Visual Studio中执行此操作 Options| Projects and Solutions| VB Defaults.
编辑更多关于VB(经典)'轻松'的类型转换态度,谷歌'邪恶类型强制'.我们这些想要在VB(经典)中做好工作的人不得不摔跤这个恶魔......