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省略的属性

  1. Private _name As String
  2. Public Property Name() As String
  3. Get
  4. Return _name
  5. End Get
  6. Set(ByVal value As String)
  7. _name = value
  8. End Set
  9. End Property
  10.  
  11. Public Property Name As String

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

  1. Dim statuses As New Dictionary(Of Integer, String)
  2.  
  3. statuses.Add(, "申请")
  4. statuses.Add(, "科长确认")
  5. statuses.Add(, "部长确认")
  6. statuses.Add(, "已确认")
  7. statuses.Add(, "返回")
  8. statuses.Add(, "否决")
  9.  
  10. Dim statuses As New Dictionary(Of Integer, String) From
  11. {
  12. {, "申请"},
  13. {, "科长确认"},
  14. {, "部长确认"},
  15. {, "已确认"},
  16. {, "返回"},
  17. {, "否决"}
  18. }
  19.  
  20. ' 定义
  21. Public Class OS
  22. Public Property Version As Single
  23. Public Property Name As String
  24. End Class
  25.  
  26. ……省略……
  27.  
  28. ' 变量的定义
  29. Dim oses As New List(Of OS) From
  30. {
  31. New OS With {.Name = "Windows XP", .Version = 5.1},
  32. New OS With {.Name = "Windows Vista", .Version = },
  33. New OS With {.Name = "Windows 7", .Version = 6.1}
  34. }

4.定义多行Lambda表达式

  1. Dim r = 20.0
  2. Dim pi = Function(birthday As Date)
  3. If birthday.Year > AndAlso
  4. birthday.Year < Then
  5. Return
  6. Else
  7. Return 3.14
  8. End If
  9. End Function
  10. Console.WriteLine(pi(Date.Today) * r * r)

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

  1. ' 人
  2. Public Class Person
  3. Public Property Name As String
  4. Public Property Age As Integer
  5. End Class
  6.  
  7. ' 员共 - 继承于人
  8. Public Class Employee
  9. Inherits Person
  10. End Class
  11.  
  12. ' 顾客 - 继承于人
  13. Public Class Customer
  14. Inherits Person
  15. End Class
  16.  
  17. ' 协变性的例子,将员工(Employee)的实例赋值于人(Person)
  18. Dim sato As New Employee With {.Name = "刘英", .Age=}
  19. Dim man As Person = sato
  1. Class Pet
  2. Public Name As String
  3. End Class
  4.  
  5. Class NameCompare
  6. Implements IComparer(Of Pet)
  7. ' ...
  8. End Class
  9.  
  10. Class Dog
  11. Inherits Pet
  12. End Class
  13.  
  14. Class Cat
  15. Inherits Pet
  16. End Class
  17.  
  18. Module Module1
  19. Sub Main()
  20. Dim DogNames As New SortedList(Of Dog, Object)(New NameCompare)
  21. Dim CatNames As New SortedList(Of Cat, Object)(New NameCompare)
  22. End Sub
  23. End Module
  24.  
  25. ' 逆变性的例子,
  26. 'VB2008中,需要传递IComparer(Of Dog)或IComparer(Of Cat),利用逆变性传递IComparer(Of Pet)就可以

6.动态对象

  1. ' 无需定义直接读取MaxRetry属性的值
  2. <?xml version="1.0" encoding="utf-8" ?>
  3. <configuration>
  4. <appSettings>
  5. <add key="MaxRetry" value ="" />
  6. </appSettings>
  7. </configuration>
  8.  
  9. Dim appSettings As Object = New SettingManager()
  10. Console.WriteLine(appSettings.MaxRetry)
  11.  
  12. ' 继承DynamicObject,重写TryGetMember方法
  13. Public Class SettingManager
  14. Inherits DynamicObject
  15.  
  16. ' Get访问属性
  17. Public Overrides Function TryGetMember(ByVal binder As System.Dynamic.GetMemberBinder, ByRef result As Object) As Boolean
  18. result = System.Configuration.ConfigurationManager.AppSettings(binder.Name)
  19. Return True
  20. End Function
  21. End Class
  22.  
  23. ' 可以动态执行属性或方法
  24. Dim user As Object = New ExpandoObject
  25.  
  26. user.Name = "赵鹏"
  27. user.Show = Sub()
  28. Console.WriteLine(user.Name)
  29. End Sub
  30. user.Show.Invoke()
  31. 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. IOC容器:Unity

    一.什么是IOC 学习IOC之前先来了解一个依赖导致原则(DIP),依赖导致原则是IOC的核心原理. 依赖导致:即上层模块不应该依赖于低层模块,二者应该通过抽象来依赖.依赖于抽象,而不是依赖于细节. ...

  2. Android studio 3+版本apk安装失败问题

    studio2.3升级到3.1之后将apk发给别人下载到手机上安装,华为提示安装包无效或与操作系统不兼容,魅族提示apk仅为测试版,要求下载正式版安装. 在网上找了一下,发现是studio3.0之后的 ...

  3. 为什么c++中,有时可以用类名直接访问非静态成员函数?

    正规的C++语言标准目前(截止到C++14)应该还不支持这种调用方法.目前微软似乎在它的VC++中推行一种叫做C++/CLI的标准,有可能会支持这种调用,如果一定要用这种调用方法的话,还应该用VS20 ...

  4. 自然语言交流系统 phxnet团队 创新实训 项目博客 (五)

    3DMax方面所涉及的专业知识:                       (1)一下的关于3DMax中对于人物的设计和操作均需要在对3DMax基础知识熟练掌握的情况下进行的. (2)骨骼架设:首先 ...

  5. 【Mysql】Mysql修改Root密码

    1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf 或者 nano /etc/my.cnf 2.在[mysqld]下添加skip-gr ...

  6. selenium+java+chrome环境搭建

    我只能说因为版本冲突,简直太折腾了,而搜了无数个博友的帖子才找到正确条案,就不能好好的写篇文章吗? 最近真的是太闲太闲了,平时没事总得搞点技术,不然心里感觉好空虚, 最近看上了selenium,所以试 ...

  7. Spring和mybatis的整合

    一.搭建项目开发环境 1. 新建一个maven项目SpringMybatis,项目结构如下: 说明: src/main/java 存放java代码和映射文件: com.study.springmyba ...

  8. 使用openstackclient调用Keystone v3 API

    本文内容属于个人原创,转载务必注明出处:  http://www.cnblogs.com/Security-Darren/p/4138945.html 考虑到Keystone社区逐渐弃用第二版身份AP ...

  9. ios中layer动画和UIView动画代码总结

    kCATransitionFade淡出  kCATransitionMoveIn覆盖原图  kCATransitionPush推出  kCATransitionReveal底部显出来    pageC ...

  10. jQuery Validation让验证变得如此easy(二)

    上一个样例我们是统一引用jquery.validate.js这样全部必填字段的提示信息都将是This field is required. 如今要改成动态提示,比方姓名假设为空则提示姓名不能为空,密码 ...