【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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:42306
用户头像

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

关注

评论

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

[分组聚合]基于Lucene8进行多值字段分组聚合(多属性字段)

alexgaoyh

lucene Spring Boot 分组聚合 单字段 多属性

首单立减7元华为负一屏买电影票又便宜又快

最新动态

DxO PureRAW for Mac(RAW照片处理器)v3.6.0永久激活版

mac

苹果mac Windows软件 DxO PureRAW raw智能照片处理工具

如何用装饰者模式代理final方法

程序员万金游

spring aop #java #程序员 #Spring #后端

EOS系统合约链账户介绍

BSN研习社

一种提升SQL改写效率的方法

天翼云开发者社区

数据库

4点策略调优!智能外呼助力汽车行业盘活客户价值

中关村科金

智能外呼系统

长沙企业采购云管平台选哪家厂商?联系电话多少?

行云管家

云计算 云服务 云管理平台 云管平台

JAVA OOM异常最佳实践

Yestodorrow

Java 运维 监控 可观测性 系统性能

文心一言 VS 讯飞星火 VS chatgpt (102)-- 算法导论9.3 8题

福大大架构师每日一题

福大大架构师每日一题

全面解读 SQL 优化 - 统计信息

KaiwuDB

sql 优化 KaiwuDB

最强大的iOS应用源码保护工具:Ipa Guard,保护你的商业机密代码

雪奈椰子

KubeCon China 2023 | 华为ICT开源产业与生态发展团队参会精彩回顾

科技热闻

What's new in Pika v3.5.1

apache/dubbo-go

redis redis sentinel Pika

什么是API商品数据接口?该怎么使用?

Noah

API 安全 API 文档 API 开发

Spring Boot 中常见且必备的注解解析

Liam

Java 程序员 Spring Boot 后端 注解

供应链透明度的代币开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发

阿里云易立:以云原生之力,实现大模型时代基础设施能力跃升 | KubeCon 主论坛分享

阿里巴巴云原生

阿里云 容器 云原生 KubeCON

基于Java开发的企业人力资源管理系统(招聘、绩效、考勤、酬薪管理)

金陵老街

得物API元数据中心探索与思考

得物技术

API管理 元数据中心 自动解析

深圳华秋电子有限公司与共熵服务中心缔结战略合作伙伴关系

华秋电子

合作伙伴

支持信创系统的数据库审计系统有哪些?用哪家好?

行云管家

数据库 信创 数据安全 国产化 数据库审计

前端首屏优化 | 提升首屏的 8 个很简单的手段

Yestodorrow

可观测性 网站性能

<em> 和 <strong> 标签的区别

Lee Chen

html 前端

一种通过延迟事务提升数据库性能的方法

天翼云开发者社区

数据库

语音识别技术的现状及发展趋势

来自四九城儿

探索古彝文AI识别技术:助力中国传统文化的传承与发扬

颜淡慕潇

人工智能 算法 AI识别技术 前言技术

三个要点,掌握Spring Boot单元测试

互联网工科生

Spring Boot 分层架构 单元测试 JUnit Mockito

华秋DFM新功能丨可焊性检查再次升级,抢先体验!

华秋电子

与创新者同行!Doris Summit Asia 2023 完整议程公开,首届线下峰会邀你报名!

SelectDB

大数据 数据分析 Doris 峰会 数据库、

Topaz Video AI for mac(视频增强和修复工具) 3.5.2完整激活版

mac

苹果mac Windows软件 Topaz Video AI 视频增强修复工具

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