zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SpringBoot Lombok使用详解1(基本介绍、安装配置、var和val)
    SpringBoot 实现文件上传2(多文件上传、常用上传参数配置)
    SpringBoot 解决跨域请求问题(No 'AccessControlAllowOrigin' header is...)
    SpringBoot 实现静态资源的访问(附:修改过滤规则、静态资源位置)
    SpringBoot 获取Get请求参数详解(附样例:非空、默认值、数组、对象)
    SpringBoot 实现文件上传1(单文件上传、常用上传参数配置)
    SpringBoot 获取POST请求参数详解(附样例:表单数据、json、数组、对象)
    SpringBoot @ControllerAdvice的使用详解3(请求参数预处理 @InitBinder)
    SpringBoot @ControllerAdvice的使用详解1(全局异常处理 @ExceptionHandler)
    解决自动禁用Flash打开摄像头询问
  • 原文地址:https://www.cnblogs.com/shuiguang/p/2029367.html
Copyright © 2011-2022 走看看