6

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

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

 IAnimal<string> animal = new Animal<string>();
 animal.SetTrainer(DateTime.Now);

我知道我会在 vb.net 中使用“Option Strict”得到相同的编译时错误。但是,同一文件中有许多旧 (VB) 代码无法使用“Option Strict”进行编译。我有什么选择。我在想:

  1. 切换到“Option Strict”并修复所有错误。这将需要一些时间,并且可能会破坏工作代码。
  2. 也许有一个替代方案可以确保泛型的编译时检查。毕竟泛型是相当新的,所以也许有一种方法可以始终执行这一点。
  3. ?

提前致谢

4

2 回答 2

6

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

转到编译并查找警告配置

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

  • 隐式强制转换
  • 后期装订

不要让他们出错,而是警告。

这不会产生编译时错误,但您至少可以看到一些警告。

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

于 2012-10-24T07:11:16.193 回答
3

切换到“Option Strict”并修复所有错误。这将需要一些时间,并且可能会破坏工作代码。

是的,这样做。它会帮助你保持理智。

大多数会弹出的错误可能是简单的转换问题,很容易修复(CInt这里,ToString()那里......)。

您不必一次修复整个解决方案或项目,因为您可以Option Strict On在文件级别启用。养成修复每个文件的好习惯,因为您必须触摸它。

这并不总是可能的,但您也可以将严重依赖Option Strict On(例如COM东西)的代码移动到另一个文件而不会破坏更改。

于 2012-10-24T07:18:24.883 回答