VB.NET充分地利用了很多新的接口。在很多时候程序中的对象需要与.NET框架中的其他对象发生关联,此时对象需要执行这些接口。其中一个重要的新的接口即为Icomparable。
Icomparable用于比较两个对象。如果你想要将数组中的对象进行分类或者查询的时候,请使用Icomparable接口。
下面的代码显示了执行Icomparable接口的一个类:
Public Class SortClass
Implements IComparable
Private cstrValue1 As String
Public Sub New(ByVal Value1 As String)
cstrValue1 = Value1
End Sub
Public Function CompareTo(ByValobj As
Object) As Integer Implements System.IComparable.CompareTo
Dim objCompareTo As
SortClass
If TypeOfobj Is
SortClass Then
objCompareTo
= obj
Select
Case objCompareTo.Value1
Case
Me.Value1
Return
0
Case
Is < Me.Value1
Return
1
Case
Is > Me.Value1
Return
-1
End
Select
Else
Throw
New System.ArgumentException( _
"Object
is not the same type.")
End If
End Function
Public Property Value1() As String
Get
Return
cstrValue1
End Get
Set(ByVal Value As
String)
cstrValue1
= Value
End Set
End Property
End Class
这一接口包含一个唯一的方法,即CompareTo,其结果可以返回以下三种之一:
-
如果传递的对象与当前的对象相同,它将返回zero。
-
如果当前对象少于传递的对象,它将返回一个小于zero的值。
-
如果当前对象大于传递的对象,它将返回一个大于zero的值。
如果传递的对象的类型不相同,将会出现一个ArgumentException的异常。
下面的代码演示了如何在一个数组中使用类,并对数组进行分类。
Dim objArray(4) As SortClass
objArray(0) = New SortClass("B")
objArray(1) = New SortClass("E")
objArray(2) = New SortClass("A")
objArray(3) = New SortClass("C")
objArray(4) = New SortClass("D")
objArray.Sort(objArray)
Dim objValue As SortClass
For Each objValue In objArray
Debug.WriteLine(objValue.Value1)
Next
如果你想执行二进制方面的查询,也可以使用Icomparable接口。
|