VB.NET简介

Visual Basic.NET是基于微软.NET Framework之上的面向对象的编程语言。

其在调试时是以解释型语言方式运作,而输出为EXE程序是是以编译型语言方式运作。

可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。

VB.Net需要在.Net Framework平台上才能执行。

Visual Basic .NET通常缩写为VB.NET,在某些特定情况下也直接简称VB,比如在.NET这个大话题下或者与其他.NET语言一起讨论的时候。

Visual Basic .NET属Basic系语言,其语法特点是以极具亲和力的英文单词为基础标识,以及与自然语言极其相近的逻辑表达,有时候你会觉得写VB.NET代码就好像在写英文句子一样,从这个角度来说,VB.NET似乎是最高级的一门编程语言,当然在Basic系语言中VB.NET也确实是迄今为止最强大的一门编程语言。

Visual Basic .NET的应用范围包括Windows桌面、Web以及当下突然觉醒的正在奋力追赶的第三大移动平台Windows Phone。

由于改动太大,导致VB.NET对VB的向后兼容性不好,在业界引起不小的争议。

VB.NET是"...中间解释性语言“,这种说法极不准确,甚至完全错误。可能原编辑者是指的编译器会先将源码翻译成MSIL(Microsoft Intermediate Language)中间语言这回事,但这和”解释性语言“有很大差别。

VB关系

不能简单认为VB .net是VB的新版本。首先它们一个是完全面向对象的语言,而另一个不是完全面向对象的,其次VB .NET是构建于.Net framework之上的。当然,它们同属Basic系列语言,又同为微软所开发,语法上有一定的相似或沿袭是很正常的,但不能因此认为VB .NET是VB的升级版。

对于想从VB转到VB .NET的开发者来说,如果你只是喜欢Basic系列语言的代码风格,那么你的迁移会很顺利,如果你想沿袭之前VB的编程思想和习惯,你会很苦恼,原因之一就是VB .NET贯穿的是完全面向对象的思想,而VB不是。

微软为使VB开发者更容易转到VB .NET,兼容一些VB6函数和库的用法,但是比不上.NET语言中自带的可替换的函数和库来得高效,所以我们应该尽量使用.NET下的新方法。微软还提供了VB到VB .NET的自动转换器,虽几经改进,但仍无法转换全部代码,几乎所有非小型程序都需要人工修改以完成编译。为了运行优化,大多程序需要大量工作去重构。

争议与解释:许多资深的VB程序员抱怨VB .NET,因为VB .NET丢掉了许多不再发行的VB6中使用的大量语言constructs和用户界面功能,并且对保留下来的东西也改变了语意。其实不应该再把VB和VB .NET做功能上的比较,因为它们除了有些语法相似外,可以说是完全不同的两种语言。

Visual Basic .NET与VB都代表了Basic系列语言的编码风格,Visual Basic .NET是这种编码风格在.NET平台上的继承,而不是同系列语言VB的沿袭。

开发

MONO开发平台提供了一个VB.NET特性库(VB.NET-specific libraries)并着手研发一个编译器和Windows Forms GUI 库。由于各方面的原因,VB.NET开发的开源工具较C#发展得慢一些。

语言革命

* 1991年4月,Visual Basic诞生,Visual Basic 1.0 Windows版本发布。这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰·库珀(Alan Cooper)完成的。 1992年9月,Visual Basic 1.0 DOS版本发布。

* 1998年夏天,VB6.0发布。

* 2001年,Visual Basic .NET和.NET Framework发布。Visual Basic .NET正式诞生。

* 2005年,微软宣布将不会再对非.NET版本的VB进行支持。

*2010年,Visual Basic .NET随Visual Studio 2010发布,不再提供单独的Visual Basic .NET IDE。

版本历史

Visual Basic .NET 2002

2002年Visual Basic .NET 问世,此后Visual Basic 包含在 Visual Studio套装中。该版本又被称为VB 7.0,是与C#一起在2002年发布的最初始的VB.net版本。C#是一门新设计.Net语言并且语法上和Java有一定的相似性,所以被大力宣传为微软对付JAVA的王牌,受到媒体极力关注。然而VB.NET则相反被错误地认为仅仅是VB的一个升级(故有时被称为VB7),它的受关注度也因此较低,当然VB社区以及喜欢Basic系列风格的语言的人还是很关注它的。那些试用过此版VB.NET的人在层层幕布下发现一个强大却艰深的语言。不过任何一种语言都是有弱点的,当然后面这一点也是.NET语言的共性,那就是运行的计算机上必须装相应版本的.Net framework。

Visual Basic .NET 2003

该版本是和.NET Framework 1.1一起发布的。新功能包括对.NET Compact Framework的支持和更好的VB升迁向导。并改进了运行状况,IDE稳定性(尤其是后台编译器),以及运行时RunTime稳定性。另外,VB.NET2003还有一个学院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分发给各国某些学者免费使用的版本。

Visual Basic .NET 2005

该版本是VB.Net的重大转变。但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。

Visual Basic .NET 2008

Visual Basic 2008于2008年2月1日发布。通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用 Visual Basic 快速创建 Windows 程序,现在还可以编写企业水平的客户/服务器程序及强大的数据库应用程序。

Visual Studio 2010

Visual Studio 2010于2010年4月12日上市,其中包含 Visual Basic .NET 2010 。Visual Studio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库等。

Visual Studio 2012

从该版本开始VB.NET已没有单独发售的IDE了,微软给Visual Basic .NET 以及C#开发者的IDE就只有Visual Studio 了。该版本增加了modern(原metro)风格的支持等众多新特性。

Visual Studio 2015

增加了大量新特性,提升你的编写效率。对编译器和开发环境优化,提高编译速度,帮你重构代码和解决错误。最明显的14项改进见参考资料的14 Top Improvements in Visual Basic 14。

语法特性:

关键字

描述

Namespace

包含类似或相关功能的类的集合

Class

用来定义一个类用以存储对象的属性、方法和事件

Sub

子过程,可以把要使用的数据以参数形式传入,但不返回值

Function

函数,同样可以传参数,但要求有返回值

Property属性过程,设置或返回对象的属性值

Return

结束当前sub或function,若是函数则返回一个函数值

Dim

声明或定义一个变量

New

创建一个新的实例对象

Nothing

表示一个变量没有值,与其他语言或数据库中的null等价

Me

当前类的实例对象的引用

Console

.NET用于访问和操作命令窗口的类,主要用于命令行应用程序

Module

模块,定义一个不是类的代码块,但它同样可以包含变量和方法

语言特性

此段列出的是仅Visual Basic .Net语言部分较独特或者较重要的特性。

数据类型

  • 数值型:整型(Short、Integer、Long和无符号的Byte)、非整型(Decimal 、Single、Double)

  • 字符型:Char、String

  • 泛型:List(Of T)、Dictionary(Of K,V)

  • 其他类型:Boolean、Date、Object、Enum、Array、ArrayList、Structure

运算符

  • 算术运算符:/(除),\(整除),Mod(取模)

  • 串联运算符:&,+亦可

  • 逻辑/按位运算符:Not、And、Or、Xor、AndAlso、OrElse

  • 赋值运算符:= ,^= ,*= ,/= ,\= ,+= ,-= ,<<=,>>=,&=

  • 比较运算符:< ,<= ,> ,>= ,= ,<> ,Is ,IsNot ,Like

  • 移位运算符:<< ,>>

  • 其他运算符:AddressOf 运算符 ,GetType 运算符 ,函数表达式,If 运算符 ,TypeOf 运算符,Await 运算符

  • DirectCast 运算符

  • TryCast 运算符

  • New 运算符

*运算优先级:算术>连接>比较>逻辑运算(用括号可改变优先级)

详细:

如果表达式中出现几种运算,将按照预先确定的称为“运算符优先级”的顺序计算和解析各个部分。

优先级规则

当表达式包含不止一种运算符时,则按照下列规则对其进行计算:

  • 算术运算符和串联运算符的优先级在下面列出,它们的优先级均高于比较运算符、逻辑运算符和位运算符。

  • 所有比较运算符具有相同的优先级,它们的优先级均高于逻辑运算符和位运算符,但低于算术运算符和串联运算符。

  • 逻辑运算符和位运算符的优先级在下面列出,它们的优先级均低于算术运算符、串联运算符和比较运算符。

  • 具有相同优先顺序的运算符将按照它们在表达式中出现的顺序从左至右进行计算。

优先级顺序

运算符的计算优先级顺序如下:

算术运算符和串联运算符

求幂 (^)

一元标识和非(+、–)

乘法和浮点除法(*、/)

整数除法 (\)

取模 (Mod)

加法和减法(+、–),字符串连接 (+)

字符串连接 (&)

算术移位(<<、>>)

比较运算符

所有比较运算符(=、<>、<、<=、>、>=、Is、IsNot、Like、TypeOf...Is)

逻辑运算符和位运算符

非 (Not)

与 (And、AndAlso)

或 (Or、OrElse)

异或 (Xor)

注释

= 运算符只是相等比较运算符,而不是赋值运算符。

字符串连接运算符 (&) 不是算术运算符,但它在优先级方面与算术运算符属于一组。

Is 和 IsNot 运算符是对象引用比较运算符。 它们不比较两个对象的值,只确定两个对象变量是否指向相同的对象实例。

结合性

当具有相同优先级的运算符(例如乘法和除法)在表达式中一起出现时,编译器将按每个运算符出现的顺序从左至右进行计算。

Visual Basic 中的运算符具有“左结合性”。

重写优先级和结合性

可以使用括号强制表达式中的某些部分先于其他部分计算。 这会重写优先级顺序和左结合性。 Visual Basic 始终先执行括在中括号内的操作,再执行括号外的操作。然而,在括号内,它保持普通优先级和结合性,除非您在括号内再使用括号。

流程控制

  • 条件:If、Select Case

  • 循环:For、For Each、While、Do While… …Loop、Do …Loop Until…

  • 终止:Exit [Do、For、Function、Property、Select、Sub、Try]

  • 异常处理:Try...Catch...Finally 语法支持"结构化异常处理"。

*三元表达式:IIf(Expression,TruePart,FalsePart),是Microsoft.VisualBasic命名空间下的函数,不论结果如何都会计算TruePart和FalsePart的表达式,它有相应的返回值。

较高版本中存在 If(Expression,TruePart,FalsePart) 运算符,与IIf的区别是它能短路计算,Expression为真时不计算FalsePart,Expression为假时不计算TruePart

系统常量

Visual Basic .Net有很多系统常量,它们都在Microsoft.VisualBasic.Constants命名空间下,这些常量包括很多方面,如表示回车换行符的vbCrLf、表示逻辑结果的vbOK以及用在时间方面的vbShortDate等等。

对象关键词

Visual Basic .Net已经是一门完全面向对象的语言,以下是关于面向对象的一些关键词:

Inherits

继承

 

Overloads

重载

Shadows

隐藏覆盖

Overrides

重写

Interface

声明接口

Implements

实现接口

还有一些与上面对应的如可重载、必须继承等等在这里就没必要一一列出了。

表达式

在Visual Basic .Net使用 Function 或 Sub 关键字创建 Lambda 表达式,就像创建标准函数或子例程一样。 但是,Lambda 表达式包括在语句中。下面分别演示单行与多行。

用Function并返回值:

1

2

3

4

5

6

DimLambdaTest=Function(x)x+1

DimLambdaTest1=Function(x)

Returnx+2

EndFunction

MessageBox.Show(LambdaTest(7))

MessageBox.Show(LambdaTest1(7))

用Sub:

1

2

3

4

5

6

DimLambdaTest=Sub(x)MessageBox.Show(x)

DimLambdaTest1=Sub(x)

MessageBox.Show(x)

EndSub

LambdaTest(7)

LambdaTest1(7)

比起其他语言,Visual Basic .Net用Function和Sub更能直观体现Lambda表达式的本质——匿名方法。

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VB(Visual Basic)是一种基于事件驱动的编程语言,广泛应用于Windows应用程序开发。而VB.NET(Visual Basic .NET)是VB的升级版,它是微软推出的一种面向对象的编程语言。 VB.NET相较于VB具有许多优点和改进。首先,VB.NET支持更强大的面向对象编程(OOP)特性,如继承、封装、多态等。这使得开发者能够更好地组织和管理代码,提高代码的可重用性和维护性。 其次,VB.NET引入了新的语言特性,如命名空间(Namespace)和属性(Property),使得代码更加清晰易懂。此外,VB.NET还提供了更多的内置类库和框架,方便开发者进行各种操作,如文件访问、网络通信等。 另外,VB.NET支持更广泛的平台和技术。它可以用于开发桌面应用程序、Web应用程序,甚至是移动应用程序(使用Xamarin技术)。通过使用.NET平台,VB.NET还可以与其他语言进行交互,如C#、F#等,实现更灵活的开发方式。 最后,VB.NET提供了强大的调试和错误处理功能,使开发者能够更轻松地定位和修复错误,提高开发效率。 尽管VB.NETVB的升级版,但需要注意的是,它不完全向下兼容。VB.NET引入了一些新的语法和规则,需要开发者进行学习和适应。然而,对于熟悉VB的开发者来说,学习VB.NET并不会太难,并且会为他们提供更多的开发机会和挑战。 综上所述,VB.NETVB的升级版,它带来了更强大的面向对象编程特性、新的语言特性、更广泛的平台支持和强大的调试功能。对于开发者来说,学习和使用VB.NET将使他们能够更好地开发高质量和高效率的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值