C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.86467 の関連記事表示

<< 0 >>
■86467  Re[1]: 参照型変数のNothing判定について
□投稿者/ shu -(2018/01/31(Wed) 16:32:34)
    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
記事No.86464 のレス /過去ログ148より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -