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. android开发(39) 使用android系统的账户中心管理账

    在android的系统设置页,有个“账户”分组,里面有很多的账户,很多app都使用了这个账户系统,比如“谷歌”,“淘宝”,“微信”,“华为”等.这些都是大公司呢,有没有可能我们也使用这个,让我们的软件 ...

  2. 【C】——strtok()和strtok_r()

    下面的说明摘自于最新的Linux内核2.6.29,说明了strtok()这个函数已经不再使用,由速度更快的strsep()代替 /** linux/lib/string.c** Copyright ( ...

  3. jQuery(六):value值操作

    val()可以获取或设置元素的value属性值.语法如下: 示例: <!DOCTYPE html> <html lang="en"> <head> ...

  4. Ubuntu下Eclipse中文乱码解决

    把Windows下的工程导入到了Linux下Eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse 默认会去读取系统的编码,所以Widnwos下的Eclipse的编码 ...

  5. 百度地图的demo提示key验证错误!错误码:230;

    在已经有BaiduMap的APIKey后使用AndroidStudio导入Baidu地图的as版的demo,提示key验证错误!错误码:230; 首先,因为百度地图demo中用自己的keystore文 ...

  6. 使用 js替换网页中的关键词为链接

    要求把一段html脚本中的疾病名添加到疾病库的链接,只添加一次,要避开超链接或图片链接. 最初是用的    str.replace('糖尿病', '<a href=...>糖尿病</ ...

  7. 总结一些笔记上的C和C++知识点

    1.如果没有提供自己的copy构造函数,C++会提供一个默认的copy构造函数,是成员到成员的copy. 2.C中static的作用: 1.隐藏:如果未加static,编译多个文件的时候,所有的全局变 ...

  8. USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写

    在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...

  9. 转:ios Sqlite数据库增删改查基本操作

    研究了几天的数据库,终于把它给搞出来了.Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的.这是仿照网上的一个例子做的,有些部分写的不好,我稍作了修改,以讲解为主,主要让大家能够明白如 ...

  10. Spring系列(一):Spring的基本概念及其核心

    一.Spring是什么 Spring是一种多层的J2EE应用程序框架,其核心就是提供一种新的机制管理业务对象及其依赖关系. 二.为什么要使用Spring 1. 降低组件之间的耦合度,实现软件各层之间的 ...