|
■No86464 (joto さん) に返信
以下のような処理を流した場合、処理が正しく行われます。
ただしそれはOperator =,<>のペアをクラス内で定義しているからです。
定義されていないクラスに対し=,<>演算を行うとエラーとなります。
参照型のNothing判定をする場合、Is,IsNot演算子を使いましょう。
Dim obj As Class1
obj = New Class1 With {.a = "1"}
If obj <> Nothing Then Console.WriteLine($"obj={obj}はnothingではありません。")
Public Class Class1
Public Property a As String
Public Shared Operator =(itm1 As Class1, itm2 As Class1)
If itm1 Is Nothing AndAlso itm2 Is Nothing Then
Return True
Else
Return (itm1 Is itm2)
End If
End Operator
Public Shared Operator <>(itm1 As Class1, itm2 As Class1)
Return Not (itm1 = itm2)
End Operator
Public Overrides Function ToString() As String
Return a.ToString
End Function
End Class
|