我酷下载
您的位置:首页-> 技术文章-> -> .NET-> VB2005语言新功能

阅读排行




VB2005语言新功能

作者未知 来源未知 加入时间:2005-9-25 人气:205
有以下主要新功能

运算符重载/部分类/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 – 永远保持排序的名称-值集合



相关文章

相关软件

联系我们 广告服务 友情链接 版权说明 软件发布 下载帮助

CopyRight
2005-2016 www.5qcn.net All Rights Reserved 版权所有 【我酷】下载