Visual Basic键入和转换问题

时间:2009-08-14 15:01:14

标签: vb.net vb6 casting typing

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

在VB6中,存在可以采用各种类型的变体类型,并且意图谨慎使用。当.Net出来时,唯一的转换(除了更改你的代码之外)会使用object作为类型。

如果代码看起来需要像你所描述的那样采用多种类型的方法,我肯定会把它称为宿醉效果或来自VB6的代码转换效果。

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

答案 2 :(得分:1)

一些VB6专家,例如“the Mandelbrot Set”,建议使用Variants表示所有变量。你可以把它称为早期鸭子打字?!这是一个颇具争议的问题 - 我们中的许多人都认为这是一场灾难。

但是必须有很多像这样的代码。在modern conversion tools出现之前,将其升级到VB.NET将是very hard。 Visual Studio升级工具每次看到Variant时都会发生混乱。如果你确实真的需要用有限的资源进行升级,我认为将所有变体更改为Object可能是最不好的选择。显然,生成的代码会很糟糕。

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