AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Visual Basic 10:持续改进中

  • 2008-11-09
  • 本文字数:1087 字

    阅读完需:约 4 分钟

像 C# 4 一样,VB 10 并没有加入过多革命性的特性。到目前为止,所有的特性都是可用的,仅仅是使用起来不太方便。

最值得期待的特性可能就是消除续行符了。虽然存在一些二义情况,但大多数情况下还是不需要使用下划线的。

接下来就是隐式的数组初始化了。VB 9 增加了数组初始化;但不幸的是其语法太冗长了。即使使用类型推断,还是需要多余的类型信息。

复制代码
Dim vectorA As Integer() = New Integer() {1, 2, 3, 4, 5}
Dim vectorB = New Integer() {1, 2, 3, 4, 5}

Visual Basic 10 为数组初始化增加了类型推断。

复制代码
Dim vectorC = {1, 2, 3, 4, 5

这种语法是通过判断与每个参数最接近的类型来实现的。如果是 System.Object,编译器就会发出一个警告。除了向量以外,该语法还支持矩阵和不规则数组。

复制代码
Dim matrix = {{1, 2, 3}, {4, 5, 6}}
Dim jagged = { ({1,2,3}), ({4,5}), ({6})}

集合也可以使用该特性进行初始化。通过使用 From 关键字,初始化列表中的每个条目都会被加到新创建的对象中。

复制代码
Dim list As New List(Of Integer) From {1,2,3,4}
Dim dictionary As New Dictionary(Of String, Integer) From {{ "Tom",80},{ "Frank",85}}

只要集合拥有一个名为 Add 的方法,该方法就可以通过最右边的参数(任意数量的参数)完成初始化。如果不存在这个方法,我么可以扩展方法的形式将其加入。

复制代码
Dim customers As New List(Of Customer) From {
{"Tom", "T", "Jones"},
{"Frank", "M", "Burns"}}
<Extension()> Sub Add( ByVal list As List(Of Customer),
ByVal firstName As String,
ByVal middleInitial As String,
ByVal lastName As String)
list.Add(New Customer(firstName, middleInitial, lastName))
End Sub

VB 10 还会对函数与子过程支持单行与多行 lambda。多行代理的语法列举如下:

复制代码
listA.ForEach(Sub(id)
Dim c = GetCustomer(id)
If c.UnpaidBill > 0 Then c.Send(Invoice)
End Sub)

通过使用现有的语法加入了自动属性。因为它看起来很像公有成员变量的语法,所以并不建议使用后者。一个可选的初始化列举如下:

复制代码
Public Property Score As Integer = 5

C#并不是唯一一个支持可选参数的语言。VB 已经支持该特性了,同时还有一个其支持的说明。特别地,定义为 Nullable(Of T) 的任何类型都不允许是可选的。VB 10 将解决该问题,最后它还支持将存储过程调用一对一的映射到 VB 包装函数上。

最后就是对协变和逆变的支持了。我们在文章:聚焦C#特性——协变和逆变中谈到了该特性。

查看英文原文: Visual Basic 10: Rounding the Edges

2008-11-09 20:42498
用户头像

发布了 88 篇内容, 共 269.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

如何使用Python开发API接口?

科普小能手

开发 -python API 接口 API 测试 API 开发

苹果电脑安装不了软件怎么回事?苹果电脑怎么安装软件?

阿拉灯神丁

存储空间 SMC- 恶意软件检测 苹果电脑使用 CleanMyMac X中文版

独立开发者 5 个月,月收入赶超北京工资,我的一点心得

秦少卫

我对超大型文本多Agent的编排设计思路

大东(AIP智能体运营专员)

虾皮商品详情API接口:获取与应用

科普小能手

API 接口 API 测试 虾皮商品详情接口 虾皮商品评论接口 虾皮API接口

这些实时互动 AI 场景正在涌现生长,也预示着多模态 AI 的未来|RTE2024 声网CEO赵斌演讲实录

声网

Burp Suite Professional 2024.10 发布下载,新增功能简介

sysin

burp

betterZip怎么下载 如何安装下载和激活BetterZip

阿拉灯神丁

Mac软件 压缩工具 解压缩软件 苹果电脑解压缩 BetterZip 5下载

一个故事,为你理清云开发服务的选择思路

蛋先生DX

腾讯云 云开发

共筑开源技术新篇章 | 2024 CCF 中国开源大会盛大开幕

OpenI启智社区

人工智能 开源 大湾区 CCF中国开源大会

硬盘格式化NTFS好还是exFAT好 ntfs和esfat有什么区别 mac不能读取移动硬盘怎么解决 mac不能完成此操作,因为您没有必要的权限

阿拉灯神丁

文件系统 文件格式 Tuxera NTFS2023 苹果电脑 NTFS 磁盘管理器

自动泊车端到端算法 ParkingE2E 介绍

地平线开发者

自动驾驶 算法

全球最大电池制造商根据统一可持续性绩效预期进行报告

财见

Visual Basic 10:持续改进中_.NET_Jonathan Allen_InfoQ精选文章