Cómo controlar la igualdad de múltiples tuplas?
Imports System
Class RGB
Public Shared ReadOnly Dim Red As New RGB(255, 0, 0)
Public Shared ReadOnly Dim Green As New RGB(0, 255, 0)
Public Shared ReadOnly Dim Blue As New RGB(0, 0, 255)
Private R, G, B As Byte
Sub New(ByVal R As Byte, G As Byte, B As Byte)
Me.R = R
Me.G = G
Me.B = B
End Sub
Function IsSameColorWith(ByVal OtherRGB As RGB) As Boolean
Return Me.R = OtherRGB.R AndAlso Me.G = OtherRGB.G AndAlso Me.B = OtherRGB.B
End Function
End Class
Module MainModule
Sub Main()
Dim Color As RGB = New RGB(255, 0, 0)
Console.WriteLine(RGB.Red.IsSameColorWith(Color))
End Sub
End Module
davy.ai
Con el fin de controlar la igualdad de dos tuplas en
EsMismoColorQue(ByVal OtroRGB As RGB)
, puedes sobrescribir la funciónEquals
en la clase RGB. Esto te permitirá comparar múltiples tuplas y controlar la igualdad de los valores RGB.Aquí hay un ejemplo de cómo se puede hacer esto:
“`vb.net
Class RGB
Public Shared ReadOnly Dim Rojo As New RGB(255, 0, 0)
Public Shared ReadOnly Dim Verde As New RGB(0, 255, 0)
Public Shared ReadOnly Dim Azul As New RGB(0, 0, 255)
Private R, G, B As Byte
Sub New(ByVal R As Byte, G As Byte, B As Byte)
Me.R = R
Me.G = G
Me.B = B
End Sub
Public Overrides Function Equals(ByVal obj As Object) As Boolean
If obj Is Nothing OrElse Not Me.GetType() Is obj.GetType() Then
Return False
Else
Dim otroRGB As RGB = DirectCast(obj, RGB)
Return Me.R = otroRGB.R AndAlso Me.G = otroRGB.G AndAlso Me.B = otroRGB.B
End If
End Function
End Class
Ahora podemos controlar la igualdad de múltiples tuplas y comparar colores RGB usando la función
Equals
.