BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Visual Basic中隐式的续行

| 作者 Jonathan Allen 关注 613 他的粉丝 ,译者 王锐 关注 0 他的粉丝 发布于 2008年3月2日. 估计阅读时间: 2 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

续行符(Line continuation characters)一直是VB语法的一个瑕疵。与Pascal家族和C家族的语言不同,Visual Basic不要求一个拖尾的分号来表示指令的结束。出于权衡考虑,它的确需要一个符号来表示指令没有结束。

用一个下划线作为续行符,是在Visual Basic 4中被引入的。在那之前,代码的逻辑行不得不位于源码的一个单独的物理行中。除非你在用联机SQL,否则这只是有点令人讨厌,而不是什么真正的问题。但是随着LINQ(它可以很容易的预处理单个查询指令)的引入,尤其是深层嵌套的情况下,问题就来了。

一篇纯粹探讨性的文章里,Microsoft的Paul Vic提议在最通常的情形下,消除对续行符的需求。然而VB与SQL不同,它并不能彻底取消续行符,即使它真的可以结束。

Paul提议在以下的五种情况下应取消续行符:

  1. 在表达式中的二进制操作符之后。
  2. 在如下标点之后:逗号(“,”),左括号(“(”),左大括号(“{”),XML的起始嵌入表达式(“”)。
  3. 在一个特性(Attribute)中的小于号(“<”)之后,以及在一个特性中的大于号(“>”)之前,或者在一个非文件级特性中的大于号之后(例如,一个没有指定“Assembly”或者“Module”的特性)。
  4. 在查询表达式操作符的前和后。

被社区所唾弃的其它建议还包括:

  • 在Handles和Implements语句之前(还有在这些语句的逗号之后)
  • 在用来标记字符串的前双引号"和后双引号"之间

对行内注释的支持也被提了出来。目前,VB只有在语句结尾处才支持注释。行内注释会使得开发人员很难编写复杂的LINQ查询。

查看原文 Implicit line continuations in Visual Basic

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT