j.i*_*.h. 5 .net vb.net interface operator-overloading syntactic-sugar
我正在捣乱,制作一个泛型类,而且这一次我想使用IComparable使用比较运算符实现的类型.
我知道.CompareTo()可以在功能上执行相同的操作,但我有一种唠叨的感觉,必须有一个实现比较运算符的接口.
而不是通过实现接口,这是通过运算符重载完成的.因此,要重载大于和小于比较运算符,例如,您可以执行以下操作:
Public Class MyNumber
Public Value As Integer
Public Overloads Shared Operator >(ByVal x As MyNumber, ByVal y As MyNumber) As Boolean
Return (x.Value > y.Value)
End Operator
Public Overloads Shared Operator <(ByVal x As MyNumber, ByVal y As MyNumber) As Boolean
Return (x.Value < y.Value)
End Operator
End Class
Run Code Online (Sandbox Code Playgroud)
由于操作符重载被定义为Shared,因此无法通过接口声明它们.VB.NET中的接口只能声明实例成员.他们无法声明共享成员.