常有人以為 VB.NET 程式的執行效能不如 C#,但根據 msdn 的說法,VB.NET 和 C# 都是編譯成 MSIL 中繼語言,因此基本上以二者所寫出來的應用程式也具有相同的效能。最常導致二者在 web 應用程式中,執行效能差異的罪魁禍首,首推過去在 ASP 中用 VBScript 不須明確宣告「變數」及其「型別」的習慣。因為在 VB.NET/ASP.NET 中,沒指定 As 的變數與引數其型別將會是 Object,該型別並非效能最佳型別。

在 VB.NET 中明確地用 As 指定型別可提高效能,因為型別推斷的時機,會從執行時期提前至編譯時期,能防止源碼因疏忽導致「晚期繫結」,可避免 Common Language Runtime 被迫在執行階段去做型別檢查和成員查閱。

此外,在 VB.NET 中的:

Dim var As New <型別>()

就是下方這一行的縮寫:

Dim var As <型別> = New <型別>()

根據 msdn 的說法,許多 VB 6 的程式員都不使用「As New」來宣告變數和產生物件 instance,因為這在 VB 6 中會降低效能。但在 VB.NET 中,As New 語法並不會降低效能,因此開發人員可以任意使用。

(本文在版工的舊 Blog 中,發表日期為 2006/05/05)

转载于:https://www.cnblogs.com/WizardWu/archive/2008/06/25/1230070.html

VB.NET 中的 As New 以及型別指定相关推荐

  1. vb.net中关于byval和byref的使用

    在vb.net中,byval和byref使用是不同的: .NET中CLR的类型系统将对应简单值的类型同对应传统"对象"的类型区分开来. 前者被称为值类型(value type),后 ...

  2. VB.Net中关于数组赋值

    在VB.Net中增加了一个修饰Shared.Shared 关键字指示一个或多个被声明的编程元素将被共享.要点是:共享元素不关联于某类或结构的特定实例.需要通过使用类名或结构名称或者类或结构的特定实例的 ...

  3. 如何在VB例程中接收自定义消息

    代码 如何在VB例程中接收自定义消息  您可以用API函数SetWindowLong指定处理消息的窗口过程(window procedure)为自定义的函数WindowProc,捕获消息ID为WM_U ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. 小心VB.NET中的除运算符/和/

    小心VB.NET中的除运算符"/"和"/" VB.NET中除运算符有两种,普通除"/"和整数除"/",如果我们写程序时不 ...

  6. vb代码大全_【必会】Rnd随机函数在VB编程中的广泛应用

    大家好,今天我们共同来看一下Rnd随机函数在VB编程中的应用. VB中的Rnd随机函数 功能:产生[0,1)之间的一个随机数. 注意:包括0,但是取不到1. 如果要实现每次运行时,产生不同序列的随机数 ...

  7. php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...

    PHP中把有符号整型转换为无符号整型方法 这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与I ...

  8. [初级]Java中的switch对整型、字符型、字符串的具体实现细节

    转载自 [初级]Java中的switch对整型.字符型.字符串的具体实现细节 Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样 ...

  9. VB.NET 中的ref 和C#中的ref 格式区别

    今天把一个VB.NET的程序翻成C#的,在ref这堵了半天. 函数定义是这样的: Public Shared Function GetUsers(ByVal portalId As Integer,  ...

最新文章

  1. 重视隐私信息安全,笑迎人脸识别百亿蓝海
  2. python知识点 07-11
  3. code ro rw zi 编译的一个ARM的程序,编译结果中的一句话
  4. Ubuntu 免密登录
  5. maven项目,如何导入本地jar包
  6. Java 1.3.1 带标签的 break语句
  7. myeclipse 10激活,本人已测试过可行
  8. python运行需要联网吗_基于python分析你的上网行为 看看你平时上网都在干嘛
  9. httpclient 无信任证书使用https
  10. 0框架前端-如何写垂侧边栏(Vertical Tabs)
  11. 5种回到顶部的写法从实现到增强
  12. 单片机c语言程序编写歌谱,单片机简谱程序
  13. lede usb启动_OpenWrt LEDE 自动挂载USB U盘的方法
  14. 数据库管理系统的未来是什么?
  15. 圆内接等边三角形的画法_如何画出圆的内接正三角形
  16. 泡泡龙游戏c语言程序,七彩泡泡龙小程序-微信七彩泡泡龙小程序小游戏v1.0-游戏宝手游网...
  17. 模型压缩——重参数化
  18. IP138 IP地址查询 php实例
  19. MySQL 免安装版的安装过程
  20. 【bzoj3698】【XWW的难题】【有上下界的网络流】

热门文章

  1. LeetCode 1197. 进击的骑士(BFS)
  2. LeetCode 356. 直线镜像
  3. LeetCode 616. 给字符串添加加粗标签(Trie树)
  4. LeetCode 1234. 替换子串得到平衡字符串(滑动窗口)
  5. 程序员面试金典 - 面试题 04.01. 节点间通路(图的遍历)
  6. 动态规划应用--双11购物凑单
  7. python re 匹配多行_Python正则表达式,看这一篇就够了
  8. Java泛型,枚举,注解
  9. java 流程控制篇 2021/02/26持续更新中
  10. jedis连接mysql_使用Jedis操作Redis数据库