程序设计与应用徐振明.pptx

上传人:莉*** 文档编号:88384389 上传时间:2023-04-25 格式:PPTX 页数:68 大小:508.15KB
返回 下载 相关 举报
程序设计与应用徐振明.pptx_第1页
第1页 / 共68页
程序设计与应用徐振明.pptx_第2页
第2页 / 共68页
点击查看更多>>
资源描述

《程序设计与应用徐振明.pptx》由会员分享,可在线阅读,更多相关《程序设计与应用徐振明.pptx(68页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、为了方便识别和处理,编程语言系统中的不同信息在计算机为了方便识别和处理,编程语言系统中的不同信息在计算机中具有不同的表示,占用不同的储存空间,这些信息在语言系中具有不同的表示,占用不同的储存空间,这些信息在语言系统中称之为统中称之为数据类型数据类型。VisualBasicVisualBasic.NET.NET使用的每种数据类型使用的每种数据类型都与公共语言运行环境(都与公共语言运行环境(CLRCLR)的通用类型系统()的通用类型系统(CommonCommonTypeSystemTypeSystem,CTSCTS)中的一种类型直接对应。这为构建跨语)中的一种类型直接对应。这为构建跨语言集成,保证

2、代码类型安全,确保用不同语言编写的对象能够言集成,保证代码类型安全,确保用不同语言编写的对象能够交互作用打下了基础。交互作用打下了基础。CTSCTS支持两种类型:值类型和引用类型。支持两种类型:值类型和引用类型。值类型直接包含数据。包括:所有的数值数据类型、值类型直接包含数据。包括:所有的数值数据类型、CharChar、BooleanBoolean、DateDate、所有结构、枚举类型。、所有结构、枚举类型。引用类型数据包含指向对象实例的引用或指针。两个引用类引用类型数据包含指向对象实例的引用或指针。两个引用类型数据可以指向同一个对象实例,因此对一个引用类型数据的型数据可以指向同一个对象实例,

3、因此对一个引用类型数据的操作会影响其他引用类型数据。操作会影响其他引用类型数据。引用类型包括:引用类型包括:StringString、所有数组和类。、所有数组和类。2.12.1数据类型数据类型数据类型数据类型第1页/共68页如表如表如表如表2-12-12-12-1所示给出了所示给出了所示给出了所示给出了VB.NETVB.NETVB.NETVB.NET常用的数据类型及其支持的常用的数据类型及其支持的常用的数据类型及其支持的常用的数据类型及其支持的CLRCLRCLRCLR类类类类型和取值范围。型和取值范围。型和取值范围。型和取值范围。在“科学计数法”中,“E”表示以10为底的幂。因此3.56E+2

4、表示3.56 102或356,3.56E-2表示3.56/102或0.0356。公共语言运行库根据应用程序所在执行平台的特性来分配存储。在某些情况下,它会尽可能紧密地压缩声明的元素(变量)。而在其他情况下它会将数据按内存地址的整数边界存放。另外,在64位平台上的存储分配与在32位平台上不同。引用任何基本或复合数据类型的Object在除了该数据类型中包含的数据之外还要额外使用4 Byte的引用地址。2.12.1数据类型数据类型数据类型数据类型2.1.1 2.1.1 2.1.1 2.1.1 VB.NETVB.NETVB.NETVB.NET的基本数据类型的基本数据类型的基本数据类型的基本数据类型第2

5、页/共68页有符号的整型数据类型包括:有符号的整型数据类型包括:SByteSByte(8 8位)、短整型位)、短整型 ShortShort(16 16 位)、整型位)、整型IntegerInteger(32 32 位)和长整型位)和长整型LongLong(64 64 位)位)。如果某个变量总是存储整数而不是带小数的数字,则将它声。如果某个变量总是存储整数而不是带小数的数字,则将它声明为这些类型中的一种。明为这些类型中的一种。用整型数进行算术运算比用其他数据类型快。在用整型数进行算术运算比用其他数据类型快。在VB.NETVB.NET中使中使用用IntegerInteger类型进行算术运算是最快的

6、。类型进行算术运算是最快的。对于对于Byte Byte、UIntegerUInteger等无符号整型数据类型,无法表示负数。等无符号整型数据类型,无法表示负数。如果将一元负(如果将一元负(-)运算符用于取值为无符号整型数据类型的表)运算符用于取值为无符号整型数据类型的表达式,则达式,则Visual BasicVisual Basic首先将表达式转换为相应的有符号的整首先将表达式转换为相应的有符号的整型数据类型。型数据类型。可用文本类型字符标识数据的类型,对于整型、文本类型字可用文本类型字符标识数据的类型,对于整型、文本类型字符符S S表示表示ShortShort,I I表示表示IntegerI

7、nteger,L L表示表示LongLong,USUS表示表示UShortUShort,UIUI表示表示UIntegerUInteger,ULUL表示表示ULongULong。如:。如:Dim IntVar As ShortIntVar=92SDim IntVar As ShortIntVar=92S。2.12.1数据类型数据类型数据类型数据类型2.1.2 2.1.2 整型数据类型整型数据类型第3页/共68页2.1.3 非整型数据类型非整型数据类型有:十进制定点型Decimal(128位)、单精度浮点型Single(32 位)和双精度浮点型Double(64 位)。它们都是有符号类型。如果数据

8、可能包含小数,则将其声明为这些类型之一。相对于浮点型(Single 和 Double)Decimal 数据类型能表示的有效位数多、精度高,但数字的范围小。浮点数的科学表示法为:mmmEeee,其中mmm是尾数(有效数字),eee是以10为底的指数。对于非整型,文本类型字符D表示Decimal,F表示Single,R表示Double。如:Dim DecVar As Decimal 字符DecVar被声明为Decimal数据类型DecVar=9223372036854775808D 赋值时在数值后面加文本类型字符D 第4页/共68页2.1.4 字符数据类型字符数据类型是用来处理可打印和可显示的字符

9、。有Char数据类型和String数据类型两种。Char数据类型是无符号的单个双字节(16位)Unicode字符。Char类型和数字类型之间的转换可以通过函数实现类型转换,如AscW和ChrW。如果打开类型检查开关(Option Strict),必须将文本类型字符C追加到单字符后,以将其标识为Char数据类型,否则将出错。如下例所示:Option Strict On .Dim CharVar As CharCharVar=¥Option Strict On时不允许从String到Char的隐式转换,故本句出错CharVar=¥C 必须加文本类型字符C 第5页/共68页String字符串类型是0

10、个或多个Unicode字符的序列。如果某个变量总是包含字符串而从不包含数值,则将它声明为String类型,如:Dim StrVar,StrVar1 As StringStrVar=DatabaseStrVar1=Microsoft.VisualBasic.Left(StrVar,4)StrVar1 的值为Data String 数据类型包含 Unicode 字符,而每个 Unicode 字符都可在 0 和 65,535 之间取值。String 没有文本类型字符。在任何标识符后追加标识符类型字符$可将其强制转换成 String 数据类型。另外,VBFixedStringAttribute类指示将

11、字符串当作固定长度的字符串来处理。如:Public StrVar As String其中,字符串变量StrVar长度固定为m个字符。第6页/共68页2.1.5 布尔型(Boolean)Boolean数据类型是被解释为True或False的无符号值。如果某个变量只能包含两个状态,则将它声明为Boolean类型。Boolean没有文本类型字符,它的默认值是 False。Boolean变量以16位(2 Byte)的数值形式存储,但只能是True或是False。使用关键字 True与False将Boolean变量赋值为这两个状态中的一个。如:Dim BoVar As BooleanBoVar=True

12、在将数值数据类型转换为Boolean值时,0会转换为False,而其他所有值都将转换为 True。在将Boolean值转换为数值类型时,False将转换为0,True将转换为-1。建议不要编写依赖True和False的等价数值的代码,以免出现不必要的错误。第7页/共68页2.1.6 日期类型(Date)Date数据类型是以IEEE64位(8Byte)整数的形式存储。可表示从公历第1年1月1号(1:00:00 AM)开始的时间。Date数据类型的变量或常数可包含日期和时间。日期数据必须用“#”括起来,格式为M/d/yyyy。如:Dim SomeDate As DateSomeDate=#1/1/

13、1 01:00:00 AM#等效#01:00:00 AM#SomeDate=#1/1/1 00:59:59 AM#系统提示错误将数字数据类型转换为Date类型时,Visual Basic将它的值视为有符号整数。如果试图转换负数,则会出错。Date没有文本类型字符。等价的.NET数据类型是System.DateTime。第8页/共68页2.1.7 对象类型(Object)Object数据占用4个字节的存储空间,作为应用程序中对象的引用地址。即对象变量中存储的值被保存在内存中的其他地方,而变量本身保存一个指向该数据的指针。这样,可以为Object变量分配任何引用类型(字符串、数组、类或接口)和任意

14、类型的数据。例如:Dim ObjVar As ObjectObjVar=123ObjVar=“ABC123”要决定Object变量当前引用的数据类型,可以使用Type类的GetTypeCode方法。如上例中后面添加:Dim DatTyp As IntegerDatTyp=Type.GetTypeCode(objVar.GetType()就可知道objVar最后引用的是字符串,因为其数据类型码DatTyp=18。声明对象变量时,尽量使用特定的类而不是一般的Object。如使用Button而不是Control,这样就可以访问其属性和方法。通常可以使用“对象浏览器”中的“类”列表来查找可用的类名。第

15、9页/共68页2.1.8 值类型和引用类型如果某个数据类型在自己的内存分配中包含数据,则该数据类型是“值类型”。“引用类型”含有指向包含数据的所在内存位置的指针。值类型包括:所有数字数据类型。Boolean、Char 和 Date。所有结构,即使其成员是引用类型。枚举,因为其基础类型总是Byte、Short、Integer或Long。引用类型包括:String。所有数组,即使其元素是值类型。类类型,如 Form。委托。通过将某个Object变量传递到Microsoft.VisualBasic命名空间中Information类的 IsReference方法,可以查看该变量充当的是引用类型还是值类

16、型。如果Object变量的内容表示引用类型,则Microsoft.VisualBasic.Information.IsReference返回True。第10页/共68页2.1.9 标识符类型字符Visual Basic提供“标识符类型字符”集,可以在声明中使用这些字符来指定变量或常数的数据类型。可用的标识符类型字符及其用法如表2-2所示。Boolean、Byte、Char、Date、Object或Short数据类型或者任何复合数据类型都没有标识符类型字符。标识符类型字符也可以强制其他标识符的数据类型,甚至可以在表达式中使用它们。在所有情况下,标识符类型字符都必须紧跟在标识符之后,不加空格。第1

17、1页/共68页2.1.10 文本类型字符文本是类型的特定值的文本表示形式。代码中出现的文本形式通常确定其数据类型。编译器将整型文本视为Integer,除非它们大得足够成为Long;将非整型文本视为 Double。在下列语句中,文本的数据类型是确定的:J=347 This literal is of the Integer data type.X=9.2 This literal is of the Double data type.B=False This literal is of the Boolean data type.Visual Basic提供了“文本类型字符”集,可以使用它们强制

18、文本采用其形式所表示的数据类型。可以通过将字符追加到文本末尾来做到这一点。如表2-3所示显示了可用的文本类型字符及其用法示例。第12页/共68页 Boolean、Byte、Date、Object、String数据类型和任何复合数据类型都没有文本类型字符。与变量、常数和表达式一样,文本也可以使用标识符类型字符(%、&、!、#、$)。但是,文本类型字符(S、I、L、US、UI、UL、D、F、R、C)只能用于文本。在所有情况下,文本类型字符都必须紧跟在文本之后。第13页/共68页2.2 数据类型转换2.2.1 扩大转换将一种数据类型改变为另一种数据类型的过程称为数据类型转换。如表2-4描述了可以执行

19、的且不会丢失信息的扩大转换。一些目标为Single或Double的扩大转换可能会导致丢失精度。如:Int32、UInt32 扩大转换为Single;Int64、UInt64、Decimal 扩大转换为Single或Double。第14页/共68页2.2.2 收缩转换标准的收缩转换包括:如表2-4中扩大转换的反向转换。Boolean和任何数字类型之间的转换。任何数字类型到任何枚举类型。Char()数组和String之间的转换。String和任何数字类型(Boolean或Date)之间的转换。从数据类型或对象类型到其派生类型的转换。收缩转换并不总是成功,它们可能会在运行时失败。如果目标数据类型无法

20、接收正在转换的值,将会出错。例如,Integer型数据到Short型的转换就可能导致溢出。第15页/共68页2.2.3 隐式转换和显式转换隐式转换在源代码中不需要任何特殊语法。在下例中,VB.NET将IntVar的整型值隐式转换为SngVar的单精度浮点数。Dim IntVar As Integer,SngVar As SingleIntVar=123 SngVar=IntVar 执行显式转换即所谓的将表达式的类型强制转换为给定的数据类型或对象类。显式转换使用类型转换关键字。VB.NET提供多个类似的关键字,如表2-5所示。通过这些关键字强制将括号中的表达式转换为目标数据类型。这些关键字的行为

21、类似函数,但编译器生成内联代码,所以执行速度比使用函数要稍快一些。第16页/共68页第17页/共68页例如:IntVar=123 K=CShort(IntVar)表达式CShort(IntVar)为Short数据类型K=Ctype(IntVar,Short)表达式Ctype(IntVar,Short)为Short数据类型注意:与转换关键字一起使用的值对于目标数据类型必须是有效的,否则将出错。例如,如果试图将Long转换为Integer,则Long的值必须在Integer数据类型的有效范围内。.NET 2005中还可用Convert 类中的若干转换方法进行显式转换,如:Dim xDouble A

22、s Double=15.0Console.WriteLine(Double:0,Convert.ToInt64(xDouble)第18页/共68页2.3 常数和枚举型(Enum)1.直接常量根据使用的数据类型,直接常量分为:字符串常量、数值常量、布尔常量、日期常量。字符串常量:用英数半型双引号括起来的一串字符。如:“12345”和“”是字符串常数。其中,“12345”的字符串长度是5,而“”的字符串长度是0。数值常量:包括整型、长整型、货币型、浮点型和字节型。布尔常量:只有True(真)和False(假)两个值。日期常量:用两个“”符号把表示日期和时间的值括起来,形成日期常量。例如:#05/1

23、6/2005#或#2005-05-1618:52:38#。第19页/共68页2.符号常量代码经常包含反复出现的常数值。它也可能依赖于某些难于记忆或没有明显意义的数值。在这些情况下,可通过使用常数来提高代码的可读性,并使代码更易维护。符号常量是有意义的名字,用以取代在程序运行中不变的数值或字符串。分为系统常量和用户定义常量两种。系统常量:在用户程序中可不加说明直接引用。VB.NET中有很多内部符号常量,如回车换行符CrLf(Microsoft.VisualBasic.ControlChars)等。VB.NET系统内部定义的常量可在“对象浏览器”中查看。用户定义符号常量 第20页/共68页符号常量

24、有点像变量,但不能像对变量那样修改符号常量的值。用户定义符号常量的Const语句的一般格式为:PublicPrivateFriendConst常量名As 数据类型表达式Const是定义符号常量的语句定义符;表达式由数值、字符串等常量和运算符组成,可以包含前面定义过的符号常量,但不能使用函数调用。由于常量可以用其他常量定义,因此,在两个以上常量之间不要出现循环或循环引用。用逗号进行分隔,则一行中可以放置多个常量声明。常量名后面可以使用类型说明符说明符号常量的类型。例如:Const PI As Single=3.1415926,TempData%=20第21页/共68页2.3.2 枚举 枚举提供了

25、处理相关联的常数集的方便途径。枚举是一组值的符号名。在类或模块的声明部分用Enum语句创建枚举。不能在方法中声明枚举。使用Private、Protected、Friend或Public来指定适当的代码访问级别。定义枚举类型可以将一组标识符与一组常数联系起来,在程序中,使用标识符代替常数可以增强程序的可读性。定义枚举类型的一般格式为:publicprivate Enum 成员名=常数表达式 End Enum常数表达式部分可以省略,没有常数部分说明的成员名对应的值为前一个成员的常数值加1。第一个枚举数没有初始值设定项,则相应常数的值为0。常数表达式可以是Long型范围内的任何值。第22页/共68页

26、例如声明:Imports SystemPrivate Enum Color Red Green=3 BlueEnd Enum 经此定义后枚举成员名称及其关联值为:Red=0Blue=4Green=3 这些值的产生原因如下:第一个枚举成员Red没有初始值设定项,被自动赋值为0。枚举成员Green被显式地赋值为3。枚举成员Blue的值为前面的成员Green值的基础上增加1,即为4。第23页/共68页2.4 结 构 结构是一个或多个不同数据类型的成员的串联。尽管可以单独访问其各个成员,但结构还是被视为一个独立的单元。结构的声明以Structure语句开头,以End Structure语句结尾。Str

27、ucture语句提供结构的名称,即结构所定义的数据类型的标识符。代码的其他部分可以使用这个标识符声明变量、参数和函数返回值的数据类型。下面的范例显示了结构的声明。Public|Protected|Friend|Protected Friend|Private Structure structname Dim|Public|Friend|Private member1 As datatype1 .Dim|Public|Friend|Private memberN As datatypeNEnd Structure 第24页/共68页Structure和End Structure语句中间的声明定义

28、了结构的成员。每个成员都必须使用Dim 语句声明,或使用指定访问权限的语句声明,如Public、Private或Friend。如果使用Dim语句,默认访问权限是public(公共)。如:Public Structure Employee Public Name As String Friend WorkPhone As Long Private HomePhone As Long End Structure 通过上面的定义之后,Employee就是一个可以使用的合法数据类型名了。第25页/共68页2.5 变 量 程序运行时常常需要储存一些临时数据。Visual Basic像大多数编程语言一样,

29、使用变量来存储这些数据。变量具有名称(用来引用变量所含值的词)和数据类型(它确定变量可存储的数据类型)两个特性。此外,还涉及变量的生存期及作用范围两个概念。2.5.1 Visual Basic命名约定变量的命名要符合VB.NET的命名约定,名称的首字符必须为字母、汉字或下划线。可包含字母、汉字、数字和下划线,不能包含空格、小数点以及各种符号。以下划线开头时,至少还包含一个合法字符。长度不能超过1023个字符。变量名在同一范围内必须惟一。第26页/共68页为了提高代码的可读性,建议:名称中各单词首字母均为大写,如FindLastRecord和RedrawMyForm。函数名和方法名以动词开始,如

30、InitNameArray和CloseDialog。类名和属性名以名词开始,如EmployeeName和CarAccessory。事件处理程序的名称以一个描述事件类型的名词开始,后面接后缀“EventHandler”,如“MouseEventHandler”。对于长项或常用项,可使用缩写使名称长度适中,例如,可以使用“HTML”代替“HyperText Markup Language”。在内部范围中避免使用与外部范围中的名称相同的名称。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。例如,若一个过程内声明了一个Date变量,此时,该过程内要调用系统的Date 函数,只能通

31、过System.Date来调用。第27页/共68页2.5.2 变量的范围变量的范围是不必限定变量名便可以引用它的所有代码集。变量的范围由声明变量的位置决定。位于给定区域中的代码不必限定在该区域中定义的变量名称便可以引用它。声明范围时,适用如下规则:Public关键字声明的公共(全局)变量的可访问性没有任何限制。模块变量的范围是在其所定义模块的整个命名空间。局部变量的范围。块内变量的范围是在其所声明的块中。块是一个以End、Else、Loop或Next语句终止的一组语句。在VB.NET中,块内变量不可在块外部访问。但是,变量的生存期仍是整个过程的生存期。不管该变量具有块范围还是过程范围,这一点都

32、不会改变。第28页/共68页2.5.3 变量的生存期除了作用域外,变量还有生存期,对应于两种变量:动态变量:离开该变量的作用范围后就释放该变量占有的内存单元,这样变量中的原有数据就不复存在。没有使用Static关键字声明的变量都是动态变量。静态变量:离开该变量的作用范围后并不释放内存单元,但也不能对该变量进行存取,当以后再次进入该变量的作用范围时,原来变量的值还可以接着继续使用。使用Static关键字声明的变量属于静态变量。变量的“生存期”是指变量可供使用的那段时间。用Dim语句声明的局部变量只在其过程正在执行期间存在。当过程终止时,它的所有局部变量都会消失,值也会丢失。然而,如果是用Stat

33、ic关键字声明局部变量,则即使在过程结束后,变量依然存在并且保留其值。只要应用程序仍在运行,模块变量、shared变量和实例变量就会保留它们的值。变量的可访问性是由在声明语句中使用的关键字(Dim、Public、Protected、Friend、Protected Friend 或 Private)所决定的。声明模块、结构、类或实例变量时,可以使用上述任意一个关键字。在过程内部,只允许使用Dim关键字,且可访问性总是私有的。第29页/共68页2.5.4变量声明 声明语句有Dim和Const两个,变量的声明语句只用Dim。它的位置和内容决定了变量的特性。变量声明格式 Public|Protect

34、ed|Friend|Protected Friend|Private|Static Shared ReadOnly Dim 变量名 (boundlist)As New 类型,变量名参数说明:Public:可选项。用Public关键字声明的变量具有公共访问权限。对于公共变量的可访问性没有任何限制。如果指定了Public,系统自动省略Dim关键字。过程内不可用。Protected:可选项。只能在类级使用Protected。用Protected关键字声明的变量具有受保护的访问权限。仅可以从其自己的类或派生类中访问它们。这就是说可以在类的内部声明受保护的变量,而不能在过程内部以及模块、命名空间进行声明

35、。仅可以用 Protected声明该类的成员。如果指定了Protected,系统自动省略Dim关键字。Friend:可选项。用Friend关键字声明的变量具有友元访问权限。可从它们的声明上下文内和同一程序中的任何位置访问它们。仅可以在模块、命名空间Friend。这意味着可以在源文件中或在模块、类或结构内(但不在过程内)声明友元变量。如果指定了Friend,系统自动省略Dim关键字。第30页/共68页 Protected Friend:可选项。使用Protected Friend关键字声明的变量同时具有受保护访问权限和友元访问权限。在同一程序集中任何位置的代码、变量自身类中的代码和任何派生类中的

36、代码都可以使用这些变量。仅可以在类级使用Protected Friend。这就是说可以在类的内部声明受保护的友元变量,而不能在过程内部以及模块、命名空间或文件级进行声明。仅可以用Protected Friend声明该类的成员。如果指定了Protected Friend,系统自动省略Dim关键字。Private:可选项。用Private关键字声明的变量具有私有访问权限。只可从它们的声明上下文(包括从过程等任何嵌套类型的成员)中来访问它们。只能在模块级使用 Private。这就是说可以在模块、类或结构内部声明私有变量,而不能在命名空间或文件级以及过程内部进行声明。如果指定了Private,也可以省

37、略Dim关键字。Static:可选项。用Static关键字声明的变量在声明它们的过程终止后保持存在,并保留它们的最新值。仅可以在过程级使用Static。这意味着可以在过程或过程的块内(但不是在类或模块级)声明静态变量。如果指定了Static,可以省略Dim关键字。在同一变量声明中,不能同时指定Static和Shared。第31页/共68页 Shared:可选项。指示该变量是共享的。可以通过用类名或结构名限定共享变量来访问它。仅可以在模块、命名空间或文件级使用Shared。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明共享变量。如果指定了Shared,也可以省略 Dim关键字。

38、不能在同一个变量声明中同时指定 Static 和 Shared。ReadOnly:可选项。只能读取但不能写入用ReadOnly 关键字声明的变量。这在创建引用类型的常数成员,如具有预设数据成员的对象变量时很有用。仅可以在模块、命名空间或文件级使用 ReadOnly。这意味着可以在源文件中或者在模块、类或结构内(但不在过程内)声明只读变量。如果指定了ReadOnly,也可省略Dim关键字。变量名:必选项。变量名称。必须是有效的Visual Basic标识符。可以在同一声明语句中声明任意多的变量,以逗号分隔多个变量。可以将若干变量声明为具有同一数据类型。还可以指定不同变量或变量组的不同类型。每个变

39、量采用在其变量名部分后遇到的第一个As子句中指定的数据类型。boundlist:可选项。非负的整数列表,表示数组变量维度的上限。以逗号分隔多个上限。数组可以具有最多60维。在 boundlist 中的每个值都指定维度的上限,而不是长度。下限总是为零,因此每一维度的下标在 0 与上限值之间变化。第32页/共68页 New:可选项。使对象即刻创建的关键字。如果在声明对象变量时使用New,则在执行 Dim 语句时会创建该对象的一个新实例。类型:变量的数据类型。除非 Option Strict 是 On,否则是可选项。可以是 Boolean、Byte、Char、Date、Decimal、Double、

40、Integer、Long、Object、Short、Single 或 String;或者是枚举、结构、类或接口的名称。可以为每个定义的变量使用单独 As 子句,或者可以通过使用公共 As 子句将若干变量定义为同一类型。如:Dim IntA,IntB,IntC,IntD AS Int16 IntA,IntB,IntC,IntD为Short型。如果没有指定类型,则变量数据类型默认为Object。:公共 As 子句中变量名的重复。变量名:一个Dim语句可包含多个As子句。用Dim声明的变量对包含 Dim 语句的区域内的所有代码都可用。如果它们是在模块、类或结构中(但在过程外)声明的,则可从该模块、类

41、或结构中的任何地方访问它们。第33页/共68页“块内变量”的范围是在其所在的块中用Dim 语句声明的变量。“局部变量”是指在过程内部(非块内)用Dim语句声明的变量。“模块变量”是在模块的声明部分用Dim 语句声明的变量。模块的声明部分用Public关键字声明的“公共变量”具有公共访问权限。在类或结构中,非局部变量的类别取决于其是否被共享。如果它是用Shared关键字声明的,它便是“共享变量”,存在于由类或结构的所有实例共享的一个副本中。否则它就是“实例变量”,需要为类或结构的每个实例分别创建该变量的副本。实例变量的给定副本仅能用于为其创建了该副本的实例。2.5.5 声明级别2.5.6 2.5

42、.6 变量范围的选择变量范围的选择在考虑范围时,记住局部变量对任何类型的临时计算而言都是一个不错的选择。它们仅当其过程运行时才占用内存,而且它们的名称也不容易发生冲突。一般情况下,在声明任何变量或常数时,使其范围尽可能窄(块范围最窄)是好的编程习惯,即“局部优先”原则。这有助于节省内存,并可最大限度地减少代码错误。同样,仅当有必要在过程调用之间保留值时,才将变量声明为 Static。第34页/共68页2.5.7 名称的大小写敏感性注意:除非应用程序停止运行,否则模块、shared、实例和 static 变量就会占用内存资源。因此,只有必要时才使用它们。VB.NET 中不区分大小写。例如,ABC

43、和abc被视为引用同一个已声明元素。但是,公共语言运行库使用区分大小写的绑定。例如,如果用名为ABC的元素定义某个类,并且其他程序集通过公共语言运行库使用该类,则它们必须用ABC来引用此元素。如果以后要重新编译该类并将此元素的名称更改为abc,则其他使用该类的程序集将无法再访问此元素。因此,在发布程序集的更新版本时,不能更改任何公共元素的字母大小写。第35页/共68页2.6 运算符与表达式 运算是对数据进行加工处理的过程,描述各种不同运算的符号称为运算符。参与运算的数据称为操作数。VB.NET中有算术、赋值、比较、串联、逻辑/按位及其他运算符。表达式是由运算符和配对的圆括号将常量、变量、函数、

44、对象的属性等操作数以合理的形式组合而成的式子。2.6.1 2.6.1 赋值运算符赋值运算符 赋值运算符是最常用的运算符,用于将右边表达式的值赋给左边变量或属性。等号左边的名称可以是简单的变量、属性或数组元素。等号左边的属性仅可以是那些在运行时可写的属性。VB.NET中有10个赋值运算符,其运算符的运算含义如表2-6所示。第36页/共68页第37页/共68页2.6.2 算术运算符和算术表达式 1算术运算符 算术运算符是最常用的运算符,用来执行简单的算术运算。VB.NET中有8个算术运算符,其中只有取负“-”是单目运算符,其余为双目运算符,各运算符的运算含义与数学中基本相同,如表2-7所示。第38

45、页/共68页 2 2 算术表达式算术表达式 算术表达式是由算术运算符、数值常量、变量和圆括号等组成,其运算结果为数值。表达式的运算规则如下:运算中的自动类型转换:参加整除的数据带小数,先四舍五入为整数再运算,结果为整数;+、-、*运算,如果参与运算数据类型相同,结果类型不变。若不同,结果一般为其中占用空间大的类型。“/”运算结果为双精度型。对于一个包含各种运算符的表达式,将按照规定的运算符优先级顺序进行运算,运算符的优先级顺序如表2-8所示。第39页/共68页说明:当多个运算符是同级运算符时,运算顺序从左到右进行。如果表达式中含有圆括号(),则先计算括号内的表达式值,这一点与数学中的计算方法是

46、相同的。使用Mod运算符执行求余运算。此运算符返回除数的余数。如果除数和被除数都是整型,则返回值是整数。如果除数和被除数都是浮点型,则返回值是浮点变量。如:Dim DubA As Double=53.4,DubB As Double=4,DubC As Double DubC=DubA Mod DubB c=1.4 3 3 串联运算符和字符串表达式串联运算符和字符串表达式 串联运算符将多个字符串联接为一个字符串。有两个串联运算符+和&,这两个运算符都执行基本串联运算。“&”用来强制两个表达式作字符串连接,而如果Option Strict 为 Off,“+”运算将根据情况而有些不同:如果两个操作

47、数都是字符串,则将两个字符串连接;如果是数值则进行相加操作。如:Dim StrA$,StrB$StrA=123&456 StrA=”123456”StrB=123+456 StrB“579”&操作符仅定义用于字符串操作数,而且无论 Option Strict 的设置是什么,都会将其操作数扩展到字符串。对于字符串串联操作,建议使用&操作符,因为它专门定义用于字符串,可以降低产生意外转换的可能性。第40页/共68页2.6.3 关系运算符和关系表达式 1 1 关系运算符关系运算符 关系运算符都是双目运算符,其作用是对两个表达式的值进行比较,若关系成立,则返回True,否则返回False。关系运算符的

48、两侧可以是数值表达式、字符串表达式或日期表达式,也可以是表达式的特例,即常量、变量及函数。VB.NET提供了8个关系运算符如表2-9所示,这8个关系运算符的优先级相同。第41页/共68页Visual Basic支持SQL语言中常用的Like做模糊查询。其格式为:Like 、可以是任意字符串常量、变量及表达式,其中,可使用通配符、字符串列表或字符区间的任何组合。若 与 匹配,则结果为True,否则为False,如表2-10所示。这8种关系运算符的优先级都相同。Is运算符是对象引用比较运算符,只判断两个对象是否引用同一个对象。但是,它不执行值比较,如表达式TypeOf MyControl Is T

49、extBox 如果MyControl是已定义的文本框控件名,则结果为True,否则为False。下例使用Is运算符比较两个对象引用。对象变量名称是一般的名称,仅用于说明目的。结果是Boolean值,它表示两个对象是否相同。第42页/共68页2 2 关系表达式关系表达式 关系表达式是指用关系运算符将两个表达式连接起来的式子。表达式1关系运算符表达式2关系运算符表达式3格式说明:若表达式1与表达式2均为数值型时,按数值大小比较。字符串比较时,按字符的ASCII码值进行,从左到右一对一比较,直到出现不同的字符为止。如:XYZ123 XYZABC 结果为 False 在下例中,显示典型的字符ASCII

50、码值排序顺序:A Z 任何汉字其中“表示空格。数值型与可转换为数值型的数据比较,按数值大小进行比较。一般不用“253”这样的关系表达式,因为会出现错误的判断。因为25结果是True,True3是True,因为True转换为数值型时为-1(False为0)。比较两个浮点数是否相等时,一般用“两数之差的绝对值1E-6”,例如:Abs(a-b)1E-6,结果为True,则a=b。日期型表达式时,其值看成“yyyymmdd”的8位整数,按值大小比较。第43页/共68页2.6.4 逻辑运算符和逻辑表达式 逻辑表达式是指用逻辑运算符连接若干关系表达式或逻辑值而组成的式子。VB.NET的逻辑运算符有:And

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com