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. jquery笔记一——小问题+小技巧

    1.table行单击选中radio(传说中input[type=radio]比input:radio要快) <tr class="rowSelect"> <td& ...

  2. sudo开发常用命令总结

    ansible ws -m "shell" -a "echo 'wangsong ALL=(ALL) NOPASSWD: /usr/local/bin/superviso ...

  3. R语言文件相关的操作

    1. 文件系统介绍 R语言对文件系统的操作,包括文件操作和目录操作,函数API都定义在base包中. 2. 目录操作 2.1 查看目录 查看当前目录下的子目录. # 启动R程序 ~ R # 当前的目录 ...

  4. [技术选型] CDH-Cloudera Distribution Hadoop

    hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变. Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribut ...

  5. 总结这两天连续干掉的bug In 创新实训 智能自然语言交流系

    临近项目合并,在pre合并中出现相当多的hug,遂记之 ps:这只是总结一下提纲,具体的方法在前文的博文中都详细记录.总结了. 平台的移植兼容性,虽然是跨平台的java,但是依旧有很多的意外: 1.从 ...

  6. 关于Unity中的NGUI精灵

    NGUI精灵实例 1.创建Unity项目工程和文件目录,保存场景 2.创建一个精灵NGUI---->Create---->Sprite,发现它的UI Sprite组件的贴图属性只支持Atl ...

  7. oracle 中execute immediate

    简单来说 就是你一个存储过程当中 创建了一个表 table_a 然后要用insert into将其他的数据插入到这个table_a当中,但是因为你在创建过程的时候 table_a还不存在,过程就会显示 ...

  8. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.【转】

    今天碰到了一个查询异常问题,上网查了一下,感谢原创和译者 如果你使用的数据库连接类是 the Data Access Application Blocks "SqlHelper" ...

  9. MP3帧时长为26ms的来历

  10. Radix-64编码简介

    本文介绍Radix-64编码,PGP和S/MIME均使用了Radix-64编码技术,rfc4880的Chap 6有关于Radix-64的详细描述. Radix-64编码基于Base64编码技术,由两部 ...