• VB2005语言新功能 选择自 AnyJack 的 Blog


    VB2005语言新功能     选择自 AnyJack 的 Blog 
    关键字   VB2005语言新功能
    出处   
     
     有以下主要新功能

    运算符重载/部分类/Continue 关键字/Using 关键字/拆分存取访问/泛型支持


    运算符重载
     Dim ShortSpan, LongSpan, TotalSpan As TimeSpan
     ShortSpan = TimeSpan.FromMinutes(100)
     LongSpan = TimeSpan.FromDays(14)
     TotalSpan = ShortSpan + LongSpan
     Console.WriteLine(TotalSpan.TotalMinutes)
     为什么可以直接TotalSpan = ShortSpan + LongSpan这样呢,原因是TimeSpan类对+号运算符进行了重载,如
      Public Shared Operator+(objA As MyClass,
        objB as MyClass) As MyClass
          ' (Code goes here.)
      End Operator

    部分类
     所谓部分类,就是把类定义为类的一部分,一个类可以有多个部分类组成而形成一个完整的类
     部分类的主要作用用于把类的定义分别存于不同的文件中,使用如下
     比如在文件TestClass_1.vb中存放下面代码
     Partial Public Class 存放
        Public Sub TestMethodA()
            Console.WriteLine("Method A called.")
        End Sub
     End Class
     在文件TestClass_2.vb中存放下面代码
     Partial Public Class TestClass
         Public Sub TestMethodB()
             Console.WriteLine("Method B called.")
         End Sub
     End Class

      而调用时和存放在一起没有什么区别
      Dim Obj As New TestClass()
     Obj.TestMethodA()
     Obj.TestMethodB()

     
    Continue 关键字
     有3中使用方法
     Continue For、Continue Do 和 Continue While
     分别应用于
     For ... Next, Do ... Loop, or While ... End While中
     如下例子
     For i = 1 to 1000
        If i Mod 5 = 0 Then
            ' (Task A code.)
            Continue For
        End If
        ' (Task B code.)
     Next

    Using 关键字
     Using表达式用于控制资源释放
     如下:
     Using NewFile As New _
       System.IO.StreamWriter("c:/MyFile.txt")
         NewFile.WriteLine("This is line 1")
         NewFile.WriteLine("This is line 2")
     End Using
     
     ' The file is closed automatically.
     ' The NewFile object is no longer available here.
     这样,当使用了using关键字时,VB2005会自动调用对象的Dispose()方法释放资源

    拆分存取访问
     在以前有以下三种访问方式
     公用 (Public)
     友元 (Friend)
     私用 (Private)
     但是,当碰到下面情况时会碰到一下问题,如只想给访问Status的权限,而不让非友元类设置Status的值
      Public Property Status() As Integer
         Get
             Return _Status
         End Get
         Set(ByVal value As Integer)
             _Status = value
         End Set
      End Property
     这时就比较难以处理了,然而在VB.2005中可以使用如下代码实现
     Public Property Status() As Integer
         Get
             Return _Status
         End Get
         Friend Set(ByVal value As Integer)
             _Status = value
         End Set
     End Property

    泛型支持 
     泛型支持在C++中已经得到广泛应用,现在VB.2005也开始支持泛型
     和泛型对照的一个非常实用的类是System.Collections.ArrayList类,它是一个可以自动调整大小的集合,
     它可以存放一般的.NET对象,为了支持这项功能,它把所有对象看出OBJECT对象,
     这样,当你只想用它来存放某一个类别的对象时,你不能保证它不能存放其他不同的类别
     然而在泛型中,可以通过OF关键字来强行确定类型,从而保证了容器存放组件的一致性,如下
      Public Class GenericList(Of ItemType)
          Inherits CollectionBase
     
          Public Function Add(ByVal value As ItemType) _
            As Integer
              Return List.Add(value)
          End Function
     
          Public Sub Remove(ByVal value As ItemType)
              List.Remove(value)
          End Sub
     
          Public ReadOnly Property Item( _
            ByVal index As Integer) As ItemType
              Get
                  ' The appropriate item is retrieved from
                  ' the List object and explicitly cast to
                  ' the appropriate type, and then returned.
                  Return CType(List.Item(index), ItemType)
              End Get
          End Property
      End Class
     调用
     ' Create the GenericList instance, and
     ' choose a type (in this case, string)
     Dim List As New GenericList(Of String)
     
     ' Add two strings.
     List.Add("blue")
     List.Add("green")
     
     ' The next statement will fail because it has the
     ' wrong type. There is no automatic way to convert
     ' a Guid object to a string. In fact, this line
     ' won't ever run, because the compiler notices the
     ' problem and refuses to build the application.
     List.Add(Guid.NewGuid())
       
     
    .NET2。0提供下面的泛型供使用,你可以在Systems.Collections.Generic 命名空间中找到这些泛型
    List – 和 GenericList 例子类似的基本集合
    Dictionary –用于索引名称=值的集合
    LinkedList –链表
    Queue – 先进先出集合
    Stack – 后进先出集合
    ReadOnlyCollection – 有固定项目集的集合,其中項目一旦建立就无法更改
    SortedDictionary – 永远保持排序的名称-值集合

     

    欢迎转载,转载请注明出处。本文出自:http://www.cnblogs.com/zdcaolei
    0
  • 相关阅读:
    python 修改文件内容3种方法
    cv2---imread---error
    when i import skimage,it occurred --"cannot import name '_validate_lengths'"
    centos7 安装jdk8和maven3
    docker pull 速度慢的问题
    jedis.zrangeWithScores 打印值为ASCII码
    git配置多个公钥秘钥问题
    maven 启动tomcat报错:org.apache.jasper.JasperException: Unable to compile class for JSP:
    Yaconf – 一个高性能的配置管理扩展
    java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
  • 原文地址:https://www.cnblogs.com/zdcaolei/p/2122964.html
Copyright © 2020-2023  润新知