1.取消了连接符
(1)","之后
(2)"()"前后
(3)"{}"前后
(4)XML
(5)连接字符"&"后
(6)赋值符号"=","&=",":=","+=","-=","*=","/=","\=","^=","<<=",">>="后
(7)式内の二項演算子"+","-","/","*","Mod","<>","<",">","<=",">=","^",">>","<<","And","AndAlso","Or","OrElse","Like","Xor",后
(8)Is,IsNot后
(9)成员修饰符"."后
(10)XML的关键字".",".@","...",后
(11)属性标记的前后
(12)查询关键字的前后
(13)For Each的In关键字后
(14)集合的From关键字后

2.自动执行属性 - 为getter和setter省略的属性

Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property Public Property Name As String

3.初始化数组,使用From{元素}方式给集合对象赋初始值

Dim statuses As New Dictionary(Of Integer, String)

statuses.Add(, "申请")
statuses.Add(, "科长确认")
statuses.Add(, "部长确认")
statuses.Add(, "已确认")
statuses.Add(, "返回")
statuses.Add(, "否决") Dim statuses As New Dictionary(Of Integer, String) From
{
{, "申请"},
{, "科长确认"},
{, "部长确认"},
{, "已确认"},
{, "返回"},
{, "否决"}
} ' 定义
Public Class OS
Public Property Version As Single
Public Property Name As String
End Class ……省略…… ' 变量的定义
Dim oses As New List(Of OS) From
{
New OS With {.Name = "Windows XP", .Version = 5.1},
New OS With {.Name = "Windows Vista", .Version = },
New OS With {.Name = "Windows 7", .Version = 6.1}
}

4.定义多行Lambda表达式

Dim r = 20.0
Dim pi = Function(birthday As Date)
If birthday.Year > AndAlso
birthday.Year < Then
Return
Else
Return 3.14
End If
End Function
Console.WriteLine(pi(Date.Today) * r * r)

5.协变性和逆变性
协变性(协方差)意味着你可以为一个参数,一个子类型或继承自已定义类型的某些事物使用更多的派生类型,
逆变性意味着只能使用更少的类型,
因为.NET中的一切都派生自对象,因此你可以使用对象替换一个参数。

' 人
Public Class Person
Public Property Name As String
Public Property Age As Integer
End Class ' 员共 - 继承于人
Public Class Employee
Inherits Person
End Class ' 顾客 - 继承于人
Public Class Customer
Inherits Person
End Class ' 协变性的例子,将员工(Employee)的实例赋值于人(Person)
Dim sato As New Employee With {.Name = "刘英", .Age=}
Dim man As Person = sato
Class Pet
Public Name As String
End Class Class NameCompare
Implements IComparer(Of Pet)
' ...
End Class Class Dog
Inherits Pet
End Class Class Cat
Inherits Pet
End Class Module Module1
Sub Main()
Dim DogNames As New SortedList(Of Dog, Object)(New NameCompare)
Dim CatNames As New SortedList(Of Cat, Object)(New NameCompare)
End Sub
End Module ' 逆变性的例子,
'VB2008中,需要传递IComparer(Of Dog)或IComparer(Of Cat),利用逆变性传递IComparer(Of Pet)就可以

6.动态对象

' 无需定义直接读取MaxRetry属性的值
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="MaxRetry" value ="" />
</appSettings>
</configuration> Dim appSettings As Object = New SettingManager()
Console.WriteLine(appSettings.MaxRetry) ' 继承DynamicObject,重写TryGetMember方法
Public Class SettingManager
Inherits DynamicObject ' Get访问属性
Public Overrides Function TryGetMember(ByVal binder As System.Dynamic.GetMemberBinder, ByRef result As Object) As Boolean
result = System.Configuration.ConfigurationManager.AppSettings(binder.Name)
Return True
End Function
End Class ' 可以动态执行属性或方法
Dim user As Object = New ExpandoObject user.Name = "赵鹏"
user.Show = Sub()
Console.WriteLine(user.Name)
End Sub
user.Show.Invoke()
CType(user, IDictionary(Of String, Object)).Remove("Name")

VB2010新特性的更多相关文章

  1. SQL Server 2014 新特性——内存数据库

    SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...

  2. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  3. [干货来袭]C#6.0新特性

    微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...

  4. CSS3新特性应用之结构与布局

    一.自适应内部元素 利用width的新特性min-content实现 width新特性值介绍: fill-available,自动填充盒子模型中剩余的宽度,包含margin.padding.borde ...

  5. 【译】Meteor 新手教程:在排行榜上添加新特性

    原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...

  6. 跨平台的 .NET 运行环境 Mono 3.2 新特性

    Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新. Mono 3.2 主要新特性: LLVM 更新到 3.2 版本,带来更多 ...

  7. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  8. es6 新特性2

    es6其他几个非常有用的新特性. import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成 ...

  9. ES6 新特性

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

随机推荐

  1. Linux(Centos7)yum安装最新redis

    正如我们所知的那样,Redis是一个开源的.基于BSD许可证的,基于内存的.键值存储NoSQL数据库.Redis经常被视为一个数据结构服务器,因为Redis支持字符串strings.哈希hashes. ...

  2. hive2.3.2安装使用

    hive的安装简单一些,使用也比较简单,基础hadoop搭建好之后,只要初始化一些目录和数据库就好了 安装需要做几件事: 1.设立一个数据源作为元数据存储的地方,默认是derby内嵌数据库,不过不允许 ...

  3. spring 加载jar包中的配置文件

    package com.xxx.ssptsppt.dataexchange.utils; import com.xxx.maybee.engine.utils.FileUtil; import com ...

  4. 在springmvc中无法使用@value()注解

    折腾了一下午,试了很多解决办法,就是死活不能扫描到properties文件.本来打算使用软编码的,尝试更改了全部jar包版本,还是无法解决. 后面想到了,spring和springmvc容器的加载顺序 ...

  5. javascript验证键盘keycode

    document.onkeyup = function(event){ var event = event || window.event; alert(event.keyCode); }

  6. Qt中QString、QByteArray、int、double之间转换

    最近写Qt中的tcp网络编程,Socke连接后,接受到的数据类型是字节型,这就涉及到了大量的类型转换,在网上辗转几辄,总算有了点结果,特此跟大家分享.好了,不废话,下面细说. 方法/步骤     1. ...

  7. Mininet的介绍&安装

    Mininet的介绍 Mininet是一个强大的网络仿真平台,通过这个这个平台,我们可以很方便的模拟真实环境中的网络操作与架构.当前SDN/OpenFlow发展的如火如荼,但是在真实网络中又不可以进行 ...

  8. Cocos2d-x绘制圆角矩形

    /* * @brief 画圆角矩形 * @param origin 矩形开始点 * @param destination 矩形结束点 * @param radius 圆角半径 * @param seg ...

  9. MyBatis SqlSessionDaoSupport实例

    在前面的章节中,我们已经讲到了基本的 mybatis 操作,但都是基于 mapper 隐射操作的,在 mybatis3 中这个 mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用 ...

  10. TPshop下载安装

    一. 首先 修改 C:\Windows\System32\drivers\etc\hosts 文件 加一行 127.0.0.1 www.tpshop.com // 这里可以改成你想要的域名 二. 修改 ...