【发布时间】:2025-11-29 17:05:02
【问题描述】:
我使用的是VB.NET,顶部是
Option Explicit
但是为什么当我这样做时编译器不会引发错误:-
obj.ThisFunction(Convert.ToInt32(strMessage))
功能是:-
Function ThisFunction(id as long)
当然,Int32 是 int 而 int64 是 long? VS 2013 中是否有我可以打开的编译器选项来发现这些?
【问题讨论】:
-
VB.NET 编译器自动将 Int32 转换为 long。
-
如果您想发现类型错误,请使用
OPTION STRICT ON。但是仍然允许隐式整数到长的转换。 -
是的,strMessage 中的值现在可以很长,并且 Convert.ToInt32 会导致运行时错误。遍历所有代码以查找和升级每个 ToInt32 将是一场噩梦。如果我可以通过错误列表轻松做到这一点,那就太好了。 Strict 也开启了 :(
-
由于您的
strMessage变量直到运行时才会被填充,您希望编译器如何捕获该错误?编译器完全无法知道该变量中的内容。
标签: vb.net visual-studio-2013 compiler-errors option-strict option-explicit