您的位置:首页 > 编程语言 > VB

vb.net学习笔记

2006-08-23 01:35 393 查看
条件语句
VB.net中条件语句依然是If Then语句和Selecr Case语句。
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
If Then语句
If Then语句比较简单,和原来一样的规则。

[align=center]If条件语句举例[/align]
[align=left]Public Class TestA[/align]
[align=left] Public Sub New()[/align]
[align=left] Dim b As Boolean = True[/align]
[align=left] If b = True Then[/align]
[align=left] '处理[/align]
[align=left] Else[/align]
[align=left] '处理[/align]
[align=left] End If[/align]
[align=left] [/align]
[align=left] End Sub[/align]
End Class
Select Case
Select Case语句用于条件的多个结果的分支判断执行。值得注意的是:Seleect Case的判断表达式必须计算为某个基本数据类型(Boolean、Byte、Char、Date、Double、Decimal、Integer、Long、Object、Short、Single 和 String)。
VB.net的Case 块的执行不能“贯穿”到下一个 switch 节。这称为“无贯穿”规则。所以不需要有Break跳出Case块。
Case字句可以是单一的变量,也可以是To和Is的混合表达式。

[align=center]Select Csae举例[/align]
[align=left]Public Class TestA[/align]
[align=left] Public Sub New()[/align]
[align=left] Dim i As Int32 = 100[/align]
[align=left] [/align]
[align=left] Select Case i[/align]
[align=left] Case 1, 3, 5, 7[/align]
[align=left] '处理[/align]
[align=left] Case 8 To 12[/align]
[align=left] '处理[/align]
[align=left] Case 13 To 21, 25[/align]
[align=left] '处理[/align]
[align=left] Case 31 To 35, 39, Is > 50[/align]
[align=left] '处理[/align]
[align=left] End Select[/align]
[align=left] End Sub[/align]
End Class
数组
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
VB.net中数组有了很大的改变。首先象在简单赋值章节描述的:数组的索引编号总是从零开始;并且数组的元素类型是强类型,即数组中所包含的每一个元素都必须是相同的类型。
Array对象
VB.net中使用Dim iArr(5) As Int32这种语法表示的数组实际上是声明了一个Array对象的实例。Array对象是位于System命名空间中。这个对象提供创建、操作、搜索和排序数组的方法,因而在公共语言运行库中用作所有数组的基类。不过虽然Array 类是支持数组的语言实现的基类。但是,只有系统和编译器能够从 Array 类显式派生。用户应当使用语言提供的数组构造。Array对象提供了一些重要的属性和方法,来便于我们操作数组。

[align=center]Array数组操作举例[/align]
[align=left] Dim iArr(5) As Int32 'iArr.Length=6[/align]
[align=left] Dim bArr(5, 5) As Boolean 'bArr.Rank=2,bArr.Length=36[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] Array.Clear(iArr, 0, iArr.Length - 1)[/align]
[align=left] [/align]
[align=left] For i As Int32 = iArr.GetUpperBound(0) To 0 Step -1 'iArr.GetUpperBound(0)=5[/align]
[align=left] '数组的元素为[/align]
[align=left] iArr.SetValue(i, i)[/align]
[align=left] Next[/align]
[align=left] [/align]
[align=left] Array.Sort(iArr) '数组元素经过排序后为0,1,2,3,4,5[/align]
[align=left] [/align]
[align=left] For i As Int32 = 0 To iArr.GetUpperBound(0)[/align]
[align=left] '输出数组元素[/align]
Next
ArrayList对象
Ayyar的容量是固定的,VB.Net提供的ReDim语句实际上是利用了ArrayList对象的能力。ArrayList是Array的复杂版本。ArrayList其实是把Array当作集合处理,当然就可以将容量根据需要进行自动扩展了。ArrayList既然是以集合的方式处理,所以它当然位于System. Collections 命名空间中了。
不过Array相对于ArrayList来讲也有其优势:Array可以有多个纬度,但ArrayList只可以有一个纬度。在Array的元素中值类型不需要进行装箱和卸箱的操作,所以在值类型方面,Array比ArrayList具有高的多的效率。(数据类型将在后期的类型章节描述。)

[align=center]使用ArrayList对象更改Array对象容量大小举例[/align]
[align=left]Dim iArr(5) As Int32[/align]
[align=left] [/align]
[align=left] For i As Int32 = 0 To iArr.GetUpperBound(0)[/align]
[align=left] iArr.SetValue(i, i) '0,1,2,3,4,5[/align]
[align=left] Next[/align]
[align=left] [/align]
[align=left] Dim iArrList As New System.Collections.ArrayList(iArr) 'iArrList.Count=6[/align]
[align=left] For i As Int32 = 6 To 10[/align]
[align=left] iArrList.Add(i)[/align]
[align=left] Next 'iArrList.Count=11[/align]
[align=left] iArrList.Insert(5, 99) 'iArrList.Count=12[/align]
[align=left] iArrList.Capacity = 100 'iArrList.Count=12[/align]
[align=left] iArrList.TrimToSize() 'iArrList.Count=12[/align]
[align=left] iArr = iArrList.ToArray(GetType(Int32))[/align]
[align=left] For i As Int32 = 0 To iArr.GetUpperBound(0) 'iArr.GetUpperBound(0)=11[/align]
[align=left] '输出:0,1,2,3,4,99,5,6,7,8,9,10[/align]
Next
数组声明指定需要一个数据类型(可将数组声明为任何基本数据类型、结构或者对象类),数组的所有元素必须都是该类型数据。但是如果数据类型是 Object,则单个数组元素可以包含各种类型的数据(如对象、字符串、数字等等)。

循环语句
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
VB.net中的循环语句分为:Do While Loop、For Next、For Each三种。

Do While Loop
Do While Loop有三种形式,这系列的循环是用于预先不知道循环的上限时使用的。在使用Do While Loop语句时要注意,因为它们是不确定循环次数,所以要小心不要造成死循环。

[align=center]Do While Loop举例[/align]
[align=left]Public Class TestA[/align]
[align=left] Public Sub New()[/align]
[align=left] Dim i As Int32[/align]
[align=left] [/align]
[align=left] i = 1[/align]
[align=left] Do While i < 100 '先判断后执行[/align]
[align=left] i += 1[/align]
[align=left] Exit Do[/align]
[align=left] Loop[/align]
[align=left] [/align]
[align=left] i = 1[/align]
[align=left] Do[/align]
[align=left] i += 1[/align]
[align=left] Exit Do[/align]
[align=left] Loop While i < 100 '先执行后判断[/align]
[align=left] [/align]
[align=left] While i < 100 'Do While i < 100[/align]
[align=left] i += 1[/align]
[align=left] Exit While[/align]
[align=left] End While[/align]
[align=left] [/align]
[align=left] End Sub[/align]
End Class
For Next
和Do While Loop不一样,For Next是界限循环。For 语句指定循环控制变量、下限、上限和可选的步长值。

[align=center]For Next举例[/align]
[align=left]Public Class TestA[/align]
[align=left] Public Sub New()[/align]
[align=left] Dim i As Int32[/align]
[align=left] [/align]
[align=left] For i = 0 To 100 Step 2[/align]
[align=left] [/align]
[align=left] Next i[/align]
[align=left] [/align]
[align=left] End Sub[/align]
End Class
For Each
For Each也是不定量循环, For Each是对于集合中的每个元素进行遍历。如果你需要对一个对象集合进行遍历,那就应该使用For Each。

[align=center]For Each举例[/align]
[align=left]Public Class TestA[/align]
[align=left] Public Sub New()[/align]
[align=left] Dim Found As Boolean = False[/align]
[align=left] Dim MyCollection As New Collection[/align]
[align=left] For Each MyObject As Object In MyCollection[/align]
[align=left] If MyObject.Text = "Hello" Then[/align]
[align=left] Found = True[/align]
[align=left] Exit For[/align]
[align=left] End If[/align]
[align=left] Next[/align]
[align=left] [/align]
[align=left] End Sub[/align]
End Class
简单的语句介绍,我们就到这里了,其他语句在以后对VB.net的逐步深入中,我们会一一阐述。

讨论数据类型
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
.net中的数据类型是程序员需要认真掌握的基础知识。.NET 中类型的两个基本类别是“值类型”和“引用类型”。基元类型、枚举和结构为值类型。类、字符串、标准模块、接口、数组和委托为引用类型。
所有的类型要么是值类型,要么是引用类型,但有一种情况例外。根类型 System.Object ,它非常特殊,因为它既不是引用类型也不是值类型,而且不能实例化。因此,类型 Object 的变量可包含值类型或引用类型。
不过无论值类型还是引用类型,它们的声明方式都是一样的,当然它们的语义是不同的。

值类型

值类型直接存储在堆栈上,要么在数组中,要么在另一个类型中。值类型总是直接访问;不可能创建对值类型的引用。值类型的值不能为空引用,值类型的变量赋值会创建所赋的值的副本。

[align=center]值类型副本创建意义举例[/align]
[align=left] Dim i As Int32 = 10[/align]
[align=left] Dim j As Int32 = i[/align]
j = 20 'i=10
基础类型
什么是基础类型呢?简单的讲就是如果一个类型的值是可以使用常数来描述的,该类型就是基础类型。当表达式的操作数均为基元类型常数时,编译器是可以在编译时计算表达式的。这种表达式被称为常数表达式。基本类型总是有初始值的。

VB.Net定义的基础类型:整数(包括字节),浮点、布尔、日期、字符和字符串。

[align=center]分类[/align]
[align=center]类型[/align]
[align=center]存储分配[/align]
[align=center]整数值类型[/align]
Byte
1
Short
2
Integer
4
Long
8
[align=center]浮点值类型[/align]
Single
4
Double
8
Decimal
16
[align=center]布尔[/align]
Boolean
2
[align=center]日期[/align]
Date
8
[align=center]字符[/align]
Char
2
[align=center]字符串[/align]
String
取决于实现平台
如果大家有心的话,可以从Boolean和Char的分配空间看出:.Net是基于Unicode来表示数据的,所以在.Net中英文字符和中文字符所占的空间是一致的。

这些基本类型也象类一样拥有各自的方法和属性,熟练运用它们能让你的程序更优雅和更有面向对象的味道。
XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
[align=center]基本类型的重要方法和属性举例[/align]
[align=left] Dim i As Int32[/align]
[align=left] Dim s As String[/align]
[align=left] Dim ss() As String[/align]
[align=left] Dim by As Byte[/align]
[align=left] Dim d As Double[/align]
[align=left] Dim b As Boolean[/align]
[align=left] Dim da As Date[/align]
[align=left] Dim c As Char[/align]
[align=left] Dim cc() As Char[/align]
[align=left] [/align]
[align=left] '整数操作[/align]
[align=left] i = Int32.Parse("¥123", Globalization.NumberStyles.AllowCurrencySymbol) '123[/align]
[align=left] i = Int32.MaxValue '2147483647[/align]
[align=left] i = Int32.MinValue '-2147483648[/align]
[align=left] by = Byte.Parse("1") '1[/align]
[align=left] '浮点数操作[/align]
[align=left] d = Double.PositiveInfinity '正无穷大[/align]
[align=left] d = Double.Epsilon '4.94065645841247E-324[/align]
[align=left] '布尔操作[/align]
[align=left] s = Boolean.TrueString 'True[/align]
[align=left] '日期操作[/align]
[align=left] da = Date.MaxValue '9999-12-31 23:59:59[/align]
[align=left] da = Date.MinValue '0:00:00[/align]
[align=left] da = Date.Now '2004-5-7 13:17:35[/align]
[align=left] b = Date.IsLeapYear(2004) 'True[/align]
[align=left] i = Date.DaysInMonth(2004, 5) '31[/align]
[align=left] '以下方法用于判断字符的特性[/align]
[align=left] Char.IsControl(c)[/align]
[align=left] Char.IsDigit(c)[/align]
[align=left] Char.IsLetter(c)[/align]
[align=left] Char.IsLetterOrDigit(c)[/align]
[align=left] Char.IsLower(c)[/align]
[align=left] Char.IsNumber(c)[/align]
[align=left] Char.IsPunctuation(c)[/align]
[align=left] Char.IsSeparator(c)[/align]
[align=left] Char.IsSurrogate(c)[/align]
[align=left] Char.IsSymbol(c)[/align]
[align=left] Char.IsWhiteSpace(c)[/align]
[align=left] Char.IsUpper(c)[/align]
[align=left] 'Char转换[/align]
[align=left] Char.ToLower(c)[/align]
[align=left] Char.ToUpper(c)[/align]
[align=left] '字符串操作[/align]
[align=left] cc = s.ToCharArray()[/align]
[align=left] ss = s.Split(",")[/align]
[align=left] s = s.Substring(5, 3)[/align]
[align=left] s = s.Trim()[/align]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: