Vb.net 将选项严格关闭代码转换为选项严格打开的工具?

Vb.net 将选项严格关闭代码转换为选项严格打开的工具?,vb.net,option-strict,Vb.net,Option Strict,我必须接管一个用vb.net编写的项目,其中包含超过40万行用option strict off模式编写的代码。我想先在option strict on下构建它,然后再做其他事情——这可能会将它转换为C。我发现有数千行代码引发编译错误,大部分是关于隐式类型转换的 如果我不想手动更正每一行,是否有任何工具可以帮助它在option strict on模式下编译?因为我自己将CStr/CInt调用添加到每一行代码中真的很痛苦。所以您想同时使用Option Strict和不使用它 我将告诉您:首先将Op

我必须接管一个用vb.net编写的项目,其中包含超过40万行用option strict off模式编写的代码。我想先在option strict on下构建它,然后再做其他事情——这可能会将它转换为C。我发现有数千行代码引发编译错误,大部分是关于隐式类型转换的


如果我不想手动更正每一行,是否有任何工具可以帮助它在option strict on模式下编译?因为我自己将CStr/CInt调用添加到每一行代码中真的很痛苦。

所以您想同时使用Option Strict和不使用它

我将告诉您:首先将Option Strict打开,然后在警告配置下将“隐式转换”条件从“错误”更改为“警告”(或“无”)。然后您将看到配置显示:Option Strict—“Custom”

但不要欺骗自己:这种自定义设置并不严格,因为它允许隐式的事情发生。
您需要问自己:“为什么我要在option Strict下编译这个?”

仅仅添加CInt或CStr,或Convert.ToString,并不会给您带来任何好处。您需要根据具体情况查看设计,并找出数据类型从一开始就不匹配的原因。

混合匹配如何才能让您运行。 这就是我认为你应该做的。 将项目设置设置为“选项严格打开” 所有出现编译错误的.vb文件。。。将“Option strict Off”作为该文件的第一行。(这将覆盖项目范围的设置)

现在您有了一个编译项目

下一个任务是当您有时间选择单个文件时(搜索“Option strict Off”)(或者当您出于其他原因修改文件时)
从单个文件中删除“Option strict Off”,让VisualStudio自动更正标记为您修复错误。

为什么有人要将所有生产代码转换为C#?我告诉你我讨厌Java,但是如果我继承了Java程序,我就不会将它转换成VB.NET或任何其他语言。处理它。我想要的是把坏代码转换成好代码。即使我不得不坚持使用VB.net,不将其转换为C#,我仍然希望它是option-strict-on。经过一段时间的研究,我决定将option-strict-on一次添加到一个文件中,并使其编译,直到所有文件都转换完毕。真的很遗憾,我找不到任何工具来简化这件事。7.5年后,我遇到了同样的事情:现在就看这个……不,我不想欺骗自己。我希望它成为实物期权严格代码,但不是手动的——将CInt、CStr添加到每个隐式tpe转换中。它应该手动完成,否则它将只是一个伪严格代码。必须手动检查所有缩小转换,以确保它们不会引发运行时错误。我只想了解VB编译器所做的工作,以使其在代码中显式表达。我猜这太难了。@deerchao但你为什么要这样?我知道你对答案感兴趣,而不是讨论原因,但看起来我们还是无法理解背后的原因。有一种方法可以让vb.net为您做出决定,那就是关闭选项。我们想帮助您,但为了能够帮助您,我们需要了解。@magma:SharpDevelop转换器需要更好的类型信息来生成C代码,因为隐式转换在默认情况下是一个错误,而不是VB中的警告。因此,在转换VB代码体时,最好在运行转换之前使用某种类型的强制转换;在大型项目中使用单一语言可能会有所帮助。减少语言税。