vb.net学习笔记

来源:互联网 发布:ps动感模糊软件 编辑:程序博客网 时间:2024/04/28 03:40
条件语句
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
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语句时要注意,因为它们是不确定循环次数,所以要小心不要造成死循环。
 
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
 
 
 
For Next
和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。
 
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()
 
 
 
原创粉丝点击