vb.net学习笔记

VB.net中条件语句依然是If Then语句和Selecr Case语句。
XML:namespace prefix = o ns = "urn:schemas-microsoft-com: Office:office" />  
If Then语句
If Then语句比较简单,和原来一样的规则。
 
If 条件语句举例
Public Class TestA
    Public Sub New()
        Dim b As Boolean = True
        If b = True Then
            ' 处理
        Else
            ' 处理
        End If
 
    End Sub
End Class
 
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的混合表达式。
 
Select Csae 举例
Public Class TestA
    Public Sub New()
        Dim i As Int32 = 100
 
        Select Case i
            Case 1, 3, 5, 7
                ' 处理
            Case 8 To 12
                ' 处理
            Case 13 To 21, 25
                ' 处理
            Case 31 To 35, 39, Is > 50
                ' 处理
        End Select
    End Sub
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对象提供了一些重要的属性和方法,来便于我们操作数组。
 

Array 数组操作举例
        Dim iArr(5) As Int32 'iArr.Length=6
        Dim bArr(5, 5) As Boolean 'bArr.Rank=2,bArr.Length=36
 
 
        Array.Clear(iArr, 0, iArr.Length - 1)
 
        For i As Int32 = iArr.GetUpperBound(0) To 0 Step -1 'iArr.GetUpperBound(0)=5
            ' 数组的元素为
            iArr.SetValue(i, i)
        Next
 
        Array.Sort(iArr) ' 数组元素经过排序后为0,1,2,3,4,5
 
        For i As Int32 = 0 To iArr.GetUpperBound(0)
            ' 输出数组元素
        Next

 
 
ArrayList对象
Ayyar的容量是固定的,VB.Net提供的ReDim语句实际上是利用了ArrayList对象的能力。ArrayList是Array的复杂版本。ArrayList其实是把Array当作集合处理,当然就可以将容量根据需要进行自动扩展了。ArrayList既然是以集合的方式处理,所以它当然位于System. Collections 命名空间中了。
不过Array相对于ArrayList来讲也有其优势:Array可以有多个纬度,但ArrayList只可以有一个纬度。在Array的元素中值类型不需要进行装箱和卸箱的操作,所以在值类型方面,Array比ArrayList具有高的多的效率。(数据类型将在后期的类型章节描述。)
 

使用ArrayList 对象更改Array 对象容量大小举例
Dim iArr(5) As Int32
 
        For i As Int32 = 0 To iArr.GetUpperBound(0)
            iArr.SetValue(i, i) '0,1,2,3,4,5
        Next
 
        Dim iArrList As New System.Collections.ArrayList(iArr) 'iArrList.Count=6
        For i As Int32 = 6 To 10
            iArrList.Add(i)
        Next 'iArrList.Count=11
        iArrList.Insert(5, 99) 'iArrList.Count=12
        iArrList.Capacity = 100 'iArrList.Count=12
        iArrList.TrimToSize() 'iArrList.Count=12
        iArr = iArrList.ToArray(GetType(Int32))
        For i As Int32 = 0 To iArr.GetUpperBound(0) 'iArr.GetUpperBound(0)=11
            ' 输出:0,1,2,3,4,99,5,6,7,8,9,10
        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 举例
Public Class TestA
    Public Sub New()
        Dim i As Int32
 
        i = 1
        Do While i < 100 ' 先判断后执行
            i += 1
            Exit Do
        Loop
 
        i = 1
        Do
            i += 1
            Exit Do
        Loop While i < 100 ' 先执行后判断
 
        While i < 100 'Do While i < 100
            i += 1
            Exit While
        End While
 
    End Sub
End Class
 
 
 
和Do While Loop不一样,For Next是界限循环。For 语句指定循环控制变量、下限、上限和可选的步长值。
 
For Next 举例
Public Class TestA
    Public Sub New()
        Dim i As Int32
 
        For i = 0 To 100 Step 2
 
        Next i
 
    End Sub
End Class
 
 
For Each也是不定量循环, For Each是对于集合中的每个元素进行遍历。如果你需要对一个对象集合进行遍历,那就应该使用For Each。
 
For Each 举例
Public Class TestA
    Public Sub New()
        Dim Found As Boolean = False
        Dim MyCollection As New Collection
        For Each MyObject As Object In MyCollection
            If MyObject.Text = "Hello" Then
                Found = True
                Exit For
            End If
        Next
 
    End Sub
End Class
 
 
简单的语句介绍,我们就到这里了,其他语句在以后对VB.net的逐步深入中,我们会一一阐述。

XML:namespace prefix = o ns = "urn:schemas-microsoft-com: Office:office" />  
.net中的数据类型是程序员需要认真掌握的基础知识。.NET 中类型的两个基本类别是“值类型”和“引用类型”。基元类型、枚举和结构为值类型。类、字符串、标准模块、接口、数组和委托为引用类型。
所有的类型要么是值类型,要么是引用类型,但有一种情况例外。根类型 System.Object ,它非常特殊,因为它既不是引用类型也不是值类型,而且不能实例化。因此,类型 Object 的变量可包含值类型或引用类型。
不过无论值类型还是引用类型,它们的声明方式都是一样的,当然它们的语义是不同的。
 
 
 
值类型直接存储在堆栈上,要么在数组中,要么在另一个类型中。值类型总是直接访问;不可能创建对值类型的引用。值类型的值不能为空引用,值类型的变量赋值会创建所赋的值的副本。
 
值类型副本创建意义举例
        Dim i As Int32 = 10
        Dim j As Int32 = i
        j = 20 'i=10
 
 
什么是基础类型呢?简单的讲就是如果一个类型的值是可以使用常数来描述的,该类型就是基础类型。当表达式的操作数均为基元类型常数时,编译器是可以在编译时计算表达式的。这种表达式被称为常数表达式。基本类型总是有初始值的。
 
VB.Net定义的基础类型:整数(包括字节),浮点、布尔、日期、字符和字符串。
 
分类
类型
存储分配
整数值类型
Byte
1
Short
2
Integer
4
Long
8
浮点值类型
Single
4
Double
8
Decimal
16
布尔
Boolean
2
日期
Date
8
字符
Char
2
字符串
String
取决于实现平台
 
如果大家有心的话,可以从Boolean和Char的分配空间看出:.Net是基于Unicode来表示数据的,所以在.Net中英文字符和中文字符所占的空间是一致的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值