1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
Imports System
Imports System.Collections
Imports System.Reflection
Namespace For7
Class IteratorA1
'Public Shared Operator >=(ByVal op1 As IteratorA1, ByVal op2 As IteratorA1) As IteratorB1
'End Operator
'Public Shared Operator <=(ByVal op1 As IteratorA1, ByVal op2 As IteratorA1) As IteratorB1
'End Operator
'Public Shared Operator -(ByVal op1 As IteratorA1, ByVal op2 As IteratorA1) As IteratorA1
'End Operator
'Public Shared Operator +(ByVal op1 As IteratorA1, ByVal op2 As IteratorA1) As IteratorA1
'End Operator
End Class
Class IteratorA2
Public Shared Operator >=(ByVal op1 As IteratorA2, ByVal op2 As IteratorA2) As IteratorB2
End Operator
Public Shared Operator <=(ByVal op1 As IteratorA2, ByVal op2 As IteratorA2) As IteratorB2
End Operator
Public Shared Operator -(ByVal op1 As IteratorA2, ByVal op2 As IteratorA2) As IteratorA2
End Operator
Public Shared Operator +(ByVal op1 As IteratorA2, ByVal op2 As IteratorA2) As IteratorA2
End Operator
End Class
Class IteratorA3
Public Shared Operator >=(ByVal op1 As IteratorA3, ByVal op3 As IteratorA3) As IteratorB3
End Operator
Public Shared Operator <=(ByVal op1 As IteratorA3, ByVal op3 As IteratorA3) As IteratorB3
End Operator
Public Shared Operator -(ByVal op1 As IteratorA3, ByVal op3 As IteratorA3) As IteratorA3
End Operator
Public Shared Operator +(ByVal op1 As IteratorA3, ByVal op3 As IteratorA3) As IteratorA3
End Operator
End Class
Class IteratorB1
Public Shared Operator IsTrue(ByVal v As IteratorB1) As Boolean
Return True
End Operator
Public Shared Operator IsFalse(ByVal v As IteratorB1) As Boolean
Return False
End Operator
End Class
Class IteratorB2
Public Shared Widening Operator CType(ByVal V As IteratorB2) As Boolean
Return True
End Operator
End Class
Class IteratorB3
Public Shared Narrowing Operator CType(ByVal V As IteratorB3) As Boolean
Return True
End Operator
End Class
Class Test
Shared Function Main() As Integer
A1()
A2()
A3()
End Function
Shared Sub A1()
Dim a As New IteratorA1, b As New IteratorA1
For i As IteratorA1 = a To b
Next
End Sub
Shared Sub A2()
Dim a As New IteratorA2, b As New IteratorA2
For k As Object = a To b
Next
End Sub
Shared Sub A3()
Dim a As New IteratorA3, b As New IteratorA3
For i As Object = a To b
Next
End Sub
End Class
End Namespace
|