Вы перегружаете логические операторы так же, как вы перегружаете унарные или арифметические операторы.
На самом деле я не могу вспомнить случай, когда это было бы полезно в данный момент, но для примера, вот пример структуры, которая переопределяет операторы And
и Or
:
Public Structure Foo
Public Shared Operator And(ByVal val1 as Foo, ByVal val2 as Foo) As Foo
''#(calculate the logical And of the two specified values here)
Return New Foo(val1.Bar And val2.Bar, val1.Baz And val2.Baz)
End Operator
Public Shared Operator Or(ByVal val1 as Foo, ByVal val2 as Foo) As Foo
''#(calculate the logical Or of the two specified values here)
Return New Foo(val1.Bar Or val2.Bar, val1.Baz Or val2.Baz)
End Operator
End Structure
Эта страница MSDN дает некоторые другие примеры и дополнительные пояснения.