为什么VB.NET中没有错误

Flo*_*ter 6 vb.net

我最近从ac#团队转到了vb.net团队.我无法找到答案的一件事是编译错误/选项的差异.让我解释.

在C#中,我将使用默认设置,在尝试将无效类型传递给模板化类(如下所示)时出现编译时错误.在这里,我使用字符串类型创建一个Animal,然后传入一个日期时间,这会导致编译错误.

 IAnimal<string> animal = new Animal<string>();
 animal.SetTrainer(DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

我知道我将在vb.net中使用"Option Strict"获得相同的编译时错误.但是,在同一个文件中有许多遗留(VB)代码无法使用"Option Strict"进行编译.我有什么选择.我在想这个:

  1. 切换到"Option Strict"并修复所有错误.需要一些时间,可能会破坏工作代码.
  2. 也许有一个替代方案可以确保对泛型的编译时检查.在所有泛型都是新的之后,也许有一种方法可以始终强制执行此操作.

提前致谢

Jür*_*ock 6

双击您的项目 - >我的项目.

转到编译并查找Warningconfiguration

现在您可以更改一些设置.

  • 隐含的演员
  • 后期绑定

不要让它们成为错误而是警告.

这不会导致编译时错误,但您至少可以看到一些警告.

另一种解决方案是使您的类成为分部类并将代码移动到新文件.您可以基于每个文件设置Option Strict/Option Explicit.

  • +1非常同意.但是如果你介意这一点,我会**在项目级**打开Option Strict,我会在每个文件中添加**Option Strict Off**没有它就不能编译.然后,您将逐步重构现有代码. (5认同)