【问题标题】:Tools to convert option strict off code into option strict on?将选项严格关闭代码转换为选项严格开启的工具?
【发布时间】:2010-03-28 08:50:52
【问题描述】:

我要接手一个用vb.net写的项目,里面有400k多行代码,都是在option strict off模式下写的。在我做任何其他事情之前,我想先在 option strict on 下构建它——这可能会将它转换为 C#。我发现有数千行代码引发编译错误,主要是关于隐式类型转换。

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

【问题讨论】:

  • 为什么有人想要将所有生产代码转换为 C#?我告诉你我讨厌 Java,但如果我继承了 Java 程序,我不会将它转换成 VB.NET 或任何其他语言。处理它。
  • 我想要的是将坏代码转换为好代码。即使我必须坚持使用 VB.net 并且不将其转换为 C#,我仍然希望它是 option-strict-on。
  • 经过一段时间的研究,我决定一次将选项 strict on 添加到一个文件中,并使其编译,直到所有文件都被转换。真的很遗憾我找不到任何工具来简化这件事。
  • 7.5 年后,我正在处理同样的事情:stackoverflow.com/questions/47562402/… 现在才看到这个......

标签: vb.net option-strict


【解决方案1】:

仅仅添加 CInt 或 CStr 或 Convert.ToString 并不会为您带来任何好处。您需要逐个查看设计,并从头开始找出数据类型不匹配的原因。

【讨论】:

    【解决方案2】:

    为了让你跑步而混搭怎么样。 这是我认为你应该做的。 将项目设置设置为“Option strict On” 所有具有编译错误的单个 .vb 文件...将“Option strict Off”作为该文件的第一行。 (这将覆盖项目范围的设置)

    您现在有一个编译项目。

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

    【讨论】:

      【解决方案3】:

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

      我会告诉你什么:首先将 Option Strict 设置为 On,然后在 Warning Configurations 下将“Implicit Conversion”条件从“Error”更改为“Warning”(或“None”)。然后您将看到配置显示:Option Strict - "Custom"。

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

      【讨论】:

      • 不,我不想自欺欺人。我希望它成为真正的 Option Strict 代码,但不是手动的——将 CInt、CStr 添加到每个隐含的 tpe 转换中。
      • 它应该手动完成,否则它只是一个假的严格代码。必须手动检查所有缩小转换,以确保它们不会引发运行时错误。
      • 我只想要 VB 编译器所做的工作以使其在代码中明确表达。猜猜这太难了..
      • @deerchao 但是你为什么想要那个?我了解您对答案感兴趣,而不是讨论原因,但是,看起来我们集体无法理解这背后的原因。有一种方法可以让 vb.net 为您做出决定——那就是 Option Strict Off。我们想帮助您,但为了让我们能够帮助您,我们需要了解。
      • @magma:SharpDevelop 转换器需要更好的类型信息来生成 C# 代码,因为默认情况下隐式转换是错误,而不是 VB 中的警告。因此,当您转换一段 VB 代码时,最好在运行转换之前使用某种类型的转换;在大型项目中选择一种语言可能会有所帮助。减少语言税。
      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 2022-09-26
      • 2012-02-15
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      相关资源
      最近更新 更多