0

我是使用 Visual Basic 开发的新手,但在 C#/C/C++/JAVA/Haskell 和其他一些方面有很多经验。

我维护代码并查找类型声明似乎很懒惰的代码示例有什么原因吗?我见过无数的字符串,它们只用作字符串类型,声明为对象。在 VB.NET 的面向对象特性出现之前,是否有必要确保方法可以接受多种类型?为什么会有人这样做?

4

3 回答 3

5

猜测一下……懒惰和旧的 VB6 习惯正在发扬光大。

于 2009-08-14T15:02:11.870 回答
3

在 VB6 中,有一个变体类型可以接受各种类型,并且应该谨慎使用。当 .Net 出现时,唯一的转换(除了大量更改代码之外)将使用 object 作为类型。

如果代码似乎需要您为采用多种类型的方法所描述的灵活性,我肯定会称其为 VB6 的宿醉效果或代码转换效果。

但是,如果您看到声明为对象的字符串类型的代码,这远比 VB6 的懒惰和宿醉更糟糕!这听起来像是糟糕的设计和缺乏照顾。

于 2009-08-14T15:46:55.277 回答
1

一些 VB6 专家,例如“ Mandelbrot Set ”,建议对所有变量使用Variants。你可以称之为早期的鸭子打字?!这是相当有争议的——我们中的许多人认为这是灾难的根源。

但是肯定有很多这样的代码。在现代转换工具出现之前,将其升级到 VB.NET 将非常困难。每次看到 Variant 时,Visual Studio 升级工具都会出现恐慌。如果您真的非常需要使用有限的资源进行升级,我想将所有变体更改为 Object 可能是最不坏的选择。显然,生成的代码会很糟糕。

你可以逐步重构。当您处理代码区域时,您可以将声明更改为更具体的类型。

于 2009-08-17T09:18:32.317 回答