То, что вы хотите сделать, называется «перегрузка операторов» , что позволяет вам определять операторы сравнения и математические операции для сложных типов (например, ваш класс Something
).
Например, вы можете перегрузить операторы сложения и вычитания из вашего Something
класса следующим образом:
Public Shared Operator +(ByVal val1 As Something, ByVal val2 As Something) As Something
''#(calculate the sum of the two specified values)
Return New Something(val1.SomeBigNumber + val2.SomeBigNumber)
End Operator
Public Shared Operator -(ByVal val1 As Something, ByVal val2 As Something) As Something
''#(calculate the difference of the two specified values)
Return New Something(val1.SomeBigNumber - val2.SomeBigNumber)
End Operator
И затем вы можете написать код, например:
Dim newValue As Something = something1 + something2
Вы также можете перегружать операторы сравнения (больше, меньше, равно, и все что между ними) почти одинаковым образом:
Public Shared Operator >(ByVal val1 As Something, ByVal val2 As Something) As Boolean
''#(return True if the first value is larger, False otherwise)
Return (val1.SomeBigNumber > val2.SomeBigNumber)
End Operator
Public Shared Operator <(ByVal val1 As Something, ByVal val2 As Something) As Boolean
''#(return True if the first value is smaller, False otherwise)
Return (val1.SomeBigNumber < val2.SomeBigNumber)
End Operator
Позволяя вам писать код, например:
If something1 > something2 Then
MesssageBox.Show("The first value is larger.")
Else
MessageBox.Show("The second value is larger.")
End If
Обратите внимание, однако, что некоторые из этих операторов должны быть перегружены в парах .В частности:
=
и <>
>
и <
>=
и <=
IsTrue
и IsFalse