0

我正在我新继承的 VB.NET 应用程序中的所有项目上打开 Option Strict。我主要是添加很多 CStr、CBool​​、CType 语句来消除所有编译错误。

Dim x As String = someObject
dim val As SomeEnumType = 1

变成

Dim x As String = CStr(someObject) ' Not .ToString() because someObject could be Nothing
Dim val As SomeEnumType = CType(1, SomeEnumType)

等等

我几乎每次都用手做一个错误,并且有一个测试应用程序来测试Nothing,...bordercases。

但是有没有可能我遗漏了一些会在运行时产生异常的东西?由于 Option Strict 会生成什么样的代码?只是要添加一些转换,还是 OptionStrict 还会做其他事情?

4

1 回答 1

2

Option Strict On 不会生成任何额外的代码,它只是告诉编译器在您的 vb.net 语句依赖于隐式类型转换时生成错误。就像将对象分配给字符串一样。您在代码段中编写的内容正是编译器对 Option Strict Off 所做的事情,因此您的类型转换运算符不会生成额外的代码。

但是,当然,您使用错误的转换并破坏现有代码的可能性总是非零。当你对代码进行更改时,你必须做总是需要做的事情,你必须重新测试它。

于 2012-11-15T14:04:39.760 回答