VB.NET模块之Strings模块及对模块的理解

一、模块

模块不能继承,也不能实例化,在使用时就不必new。默认情况下,模块里的变量、过程、函数均是全局共享的。VB.net也提供了一些系统模块,如:Strings、DateAndTime、Conversion、FileSystem等,系统级模块就是把一些功能相同的函数组织在一起,可以通过模块名来访问具体的功能函数。

使用系统函数时,你只需记住这个函数的模块即可,或者在你不知使用什么函数的情况下,你只要知道该函数属于什么类别,在vs中键入模块名,逐项查找即可。

如果是自定义模块,应仿照系统级模块的方式,将功能相同的函数组织在一起,便于访问。一个项目可以有多个模块,相同名字的变量、函数、过程可以在不同模块中定义,但是在使用时必须要先引用模块名。如果没有重名的,可以省略模块名。

示例:Module Module2
    Public testVar As String = "Module2的变量"
    Public Sub m2sub()
        System.Console.WriteLine("现在执行了Module2模块的m2sub过程")
    End Sub
End Module

Module Module3
    Public testVar As String = "Module3的变量"
    Public Sub m3sub()
        System.Console.WriteLine("现在执行了Module3模块的m3sub过程")
    End Sub
End Module

Module Module1
    Sub Main()
        System.Console.WriteLine("模块2:{0}", Module2.testVar)  '必须引用模块名
        System.Console.WriteLine("模块3:{0}", Module3.testVar)  '必须引用模块名
        m2sub()    '省略了模块名
        Module3.m3sub() '未省略模块名,调用过程
        System.Console.ReadLine()
    End Sub
End Module

系统模块:Constants 模块包含杂项常数。这些常数可以在代码中的任何地方使用,主要用于msgbox()函数。

              ControlChars 模块包含用作控制字符的常数。

              Conversion 模块包含用于执行各种转换操作的过程。包含进制转换、数字转字符串、字符串转数字

              DateAndTime 模块包含在日期和时间操作

              ErrObject 模块包含用于使用 Err 对象标识和处理运行时错误的属性和过程。

              FileSystem 模块包含用于执行文件、目录或文件夹以及系统操作的过程。建议用性能高的my.computer.filesystem对象代替。

              Financial 模块包含用于执行财务操作的过程

              Globals 模块包含脚本引擎函数。

              Information 模块包含用于返回、测试或验证信息的过程

              Interaction 模块包含用于与对象、应用程序和系统交互的过程。可运行其他程序、调用方法或属性、从计算机发出声响、

                                 提供命令行字符串、操作 COM 对象并控制对话框。

              Strings 模块包含用于执行字符串操作的过程。

              VbMath 模块包含用于执行算术操作的过程。

二、Strings模块

1、asc()、ascw()与chr()、chrw():前两个返回字符的代码(integer),后两个返回指定数值的字符,asc、chr使用双字节字符集(-32768到32767),chr、chrw使用Unicode字符集(0-65535)

用下面的代码来感受不同:

        System.Console.WriteLine("30000对应的双字节编码:{0}", Strings.Chr(30000))
        System.Console.WriteLine("30000对应的Unicode编码:{0}", Strings.ChrW(30000))

        System.Console.WriteLine("切的双字节编码 :{0}", Strings.Asc("切"))
        System.Console.WriteLine("切的Unicode编码:{0}", Strings.AscW("切"))

        System.Console.ReadLine()

运行结果:

2、Filter函数:返回一个从零开始的数组,该数组包含基于指定筛选条件的 String 数组的子集。

Function Filter(
   ByVal Source() As { Object | String },
   ByVal Match As String,
   Optional ByVal Include As Boolean = True,
   Optional ByVal Compare As CompareMethod = CompareMethod.Binary
)  As String()
参数Source()、返回的结果String()必须是数组。第三个参数为True时,结果中是包含第二个参数(要搜索的字符串)的所有字符串;为False时,结果中是不包含第二个参数的所有字符串。第四参数是比较方式,分为CompareMethod.Binary即二进制比较和CompareMethod.text即文本比较。

示例:

Module Module1
    Sub Main()
        '测试Filter函数
        Dim StringText(3) As String
        StringText(0) = "一心一意"
        StringText(1) = "不名一钱"
        StringText(2) = "百足之虫"
        Dim stext() As String
        'False,数组中排除了"一心一意" "不名一钱",只有"百足之虫"。
        'stext = Strings.Filter(StringText, "一", False, CompareMethod.Binary)
        'True,数组中有"一心一意" "不名一钱"
        stext = Strings.Filter(StringText, "一", True, CompareMethod.Binary)
        '显示数组stext中的每个元素
        For Each st As String In stext
            System.Console.WriteLine(st)
        Next
        System.Console.ReadLine()
    End Sub
End Module

3、Format:格式化字符串,formatNumber,FormatDateTime,FormatPercent

Public Shared Function Format( _
   ByVal Expression As Object, _
   Optional ByVal Style As String = "" _
) As String

Expression可以是数字、日期时间、日期时间序列数。

示例:

    Sub Main()
        '测试Format 函数()
        Dim i As Integer = 10
        Dim FString As String
        '将数字5格式化为005.00
        FString = Strings.Format(i, "000.00")

        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '.net Framework中格式化字符串的方法,优于strings.format()方式,也利于使用其他如c#。

        'System.Console.WriteLine("<0,7:000.00>第一个数字0是参数索引,7是宽度,000.00是格式化,结果如下:")
        'FString = System.String.Format("{0,7:000.00}", i)   '{0,7:000.00}是复合格式化

        '有两个参数
        ' FString = System.String.Format("{0,7:000.00}" & Constants.vbCrLf & "<1,6:###.##>" & vbCrLf &  "{1,6:###.##}", i, i)
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

        System.Console.WriteLine(FString)
        System.Console.ReadLine()
    End Sub

4、mid函数:从一个字符串返回包含指定数量字符的字符串。例:Mid("NBA美职篮", 2, 3) 返回“BA美”,第二个参数必须从1开始。

    instr函数:返回一个串在另一个串中第一次出现的位置。例:InStr("美职篮就是美国男子职业篮球联赛", "篮") 返回3。

    instrrev函数:同上,但是从右边开始找。例:InStrRev("美职篮就是美国男子职业篮球联赛", "篮") 返回12。

    StrReverse函数:反序字符串。 例:StrReverse(“NBA美职篮”) 返回:篮职美ABN

posted on 2011-04-26 16:41  水光  阅读(831)  评论(0编辑  收藏  举报

导航