代码之家  ›  专栏  ›  技术社区  ›  Enrico Campidoglio

vb6程序员用vb.net中的vb运行时函数[关闭]

  •  6
  • Enrico Campidoglio  · 技术社区  · 17 年前

    我正在准备一个关于VisualBasic2005的类,面向迁移到.NET平台的VisualBasic6程序员。

    我主要关心的是教我的学生在.NET中开发的最佳实践,我想知道是否考虑将vb运行时函数vb.net的使用合法化。

    我已经阅读过很多vb.net中的vb函数实际上调用了.NET框架上的方法,因此它们的存在主要是为了简化从早期版本的Visual Basic到vb.net的转换。然而, the VB.NET team 似乎建议尽可能使用它们,因为它们声称在.NET框架API之上放置了一些优化。

    你对这个有什么看法?

    6 回复  |  直到 14 年前
        1
  •  7
  •   Joel Coehoorn    17 年前

    在我所处的位置,我必须经常在c和vb.net之间来回移动。考虑到这一点,我们确实不喜欢旧的vb函数,尤其是字符串函数: Trim(), Replace(), Len(), UCase() 等等。它们在.NET程序中看起来很奇怪,我不想在我必须处理的代码中看到它们。

    唯一的例外可能是 Len() ,如果您使用 of 弗里奇在这种情况下,阅读 Len(theString) 作为 length of theString 似乎有道理。在其他的例子中,它更多的是由字符串执行的操作,所以我想看看。(点)表示法。

    另一方面,我很难摆脱转换运算符: CStr, CInt, CDbl 等。

    我不能告诉你为什么我喜欢一种类型而不喜欢另一种类型;可能是我发现convert.to_uuu()太冗长了,或者可能与它们有关 算子 而不是函数。

    编辑
    这一点在我的其他帖子中有点迷失,所以我想再次强调:

    在很多地方,vb.net与c_共存。我认为你看到的只有vb.net的商店并不像你看到的那样多。它不那么流行,很多vb.net商店都将vb.net作为一种过渡状态,而程序员也学习c。 在这些混合环境中,如果新代码中严格禁止使用旧的vb函数,那么就非常有意义。 你永远不知道什么时候需要移动一个模块,并且在必须同时搜索两种样式时,有一些思想共享开销。所以不理解两者真是个坏主意。

        2
  •  4
  •   JamesSugrue    17 年前

    好吧,我想你必须以面值来计算。我主要是C程序员,但在过去的6-8周里一直在开发一个vb.net Web应用程序。

    我对裤子的估计表明,使用转换函数(如CINT、CDate等)和使用convert.toxx方法一样快。

    我的建议是:如果这样做更容易,而且没有性能惩罚,那就去做吧!我也会教他们.NET方法,让用户决定。

    顺便说一句,作为一个C家伙,我喜欢cxx程序的简单性。仅仅因为它们只在vb.net中可用并不意味着你不应该使用它们(imho)。马匹为课程和所有这些。

        3
  •  4
  •   MarkJ    17 年前

    对于vb6程序员来说,迁移到vb.net上已经有很多东西需要学习。为什么不先让他们使用vb函数,然后教他们.NET框架的版本呢?稍后,他们可以切换到.NET框架函数,特别是当他们可能也需要使用C时。

    编辑(很晚):两位著名的VB大师持相反的观点!

    • 弗朗西斯科·巴勒纳(在他的畅销书中) Programming Microsoft Visual Basic 2005: The Language )建议ex-vb6开发人员在熟悉新语言后尽快学习.NET语法,并尽可能避免在Microsoft.VisualBasic命名空间中使用方法和类[p.100]。他的观点是,一般来说,原生.NET方法提供了更好的灵活性,如果您以后需要使用C或其他.NET语言,学习它们是一项投资。
    • 丹·阿普尔曼(in 他的 通俗读物 Moving to VB.NET: Strategies, Concepts, and Code )建议您随意使用本机Microsoft.VisualBasic命名空间,避免使用Microsoft.VisualBasic.Compatibility.vb6命名空间中的命名空间[第265页]。他的观点是,Microsoft.VisualBasic是.NET框架的核心部分。
        4
  •  3
  •   Tom Anderson    17 年前

    如果您想教.NET框架在语言之间来回移动的最佳实践,我建议删除Microsoft.VisualBasic的全局导入。这实际上迫使您执行Microsoft.VisualBasic.Trim()等操作。而不仅仅是“trim()”。

    如果我没弄错的话,在Visual Studio 2008中,您现在可以一起删除vb.net中“pure”.net模式的引用,这使得在语言之间来回移动更加容易。

    如果你只是在教vb.net的人,就像上面提到的海报一样,使用它们,因为它们是可用的,并且需要更少的输入。

        5
  •  2
  •   Ant    17 年前

    如果同时提到框架方法和vb.net函数,您可能会提到一件事,即尽管它们有时感觉是相同的,但实际上它们可以做一些细微的不同的事情。

    例如,字符串的equals运算符将空字符串视为与string.empty相同的字符串(请参见 The real cost of performance 例如,当你忘记时会发生什么!)

    此外,vb.net函数通常为执行所讨论的操作提供良好的默认设置,但如果需要更多的控制,则通常需要返回到框架方法-例如,如果需要 make string conversions in a different culture .

        6
  •  -3
  •   Windows programmer    17 年前

    如果你在教vb,这些函数是vb的一部分。如果您正在教授.NET框架,那么这些函数不是框架的一部分。如果你想完成你的工作,并且你有可用的工具,那就使用你的工具。

    推荐文章