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. .net 循环引用是否会造成内存泄漏

    一直想做这么一个测试,人和手的测试.类型"人"有一个属性"手",需要"手"也可以读取"人"的数据.则"手&qu ...

  2. Android Studio 学习笔记(1)

    最近从Eclipse转到Android Studio IDE,很多东西需要学习,本文是个记录. 项目结构 在Anroid Studio 中,一个Project 包括多个Module,每个Module下 ...

  3. HTML5里的input标签的required属性的提示

    <input type="text" name="usr_name" required='required' oninvalid="setCus ...

  4. HashSet与TreeSet 区别

    HashSetHashSet有以下特点 不能保证元素的排列顺序,顺序有可能发生变化 不是同步的 集合元素可以是null,但只能放入一个null当向HashSet集合中存入一个元素时,HashSe ...

  5. Python 内置方法new

    class Dog(object): def __new__(self): print("i am new .") def __init__(self): print(" ...

  6. Socket心跳包机制

    心跳包的发送,通常有两种技术方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个 ...

  7. ADB 设置远程调试

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00016657 相信很多人在android 开发调试的时 ...

  8. Maven 构建配置文件

    什么是构建配置文件? 生成配置文件是一组可以用来设置或覆盖 Maven 构建配置值的默认值.使用生成配置文件,你可以针对不同的环境,如:生产V/S开发环境自定义构建. 配置文件中指定 pom.xml ...

  9. QA:无法为具有固定名称“MySql.Data.MySqlClient”...

    Question: 无法为具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“MySql.Data.MySqlC ...

  10. Git -- 新增分支添加新功能

    软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...