3
"IsFalse"と "IsTrue"は、基本的に暗黙的にブール値に変換されますか?私はそれらがショートサーキット演算子(AndAlso、OrElse)によって使用されていることを知っていますが、それらは機能や内部動作の点で異なり、ブール値への暗黙的な変換ですか?"IsFalse"と "IsTrue"は基本的に暗黙的にbooleanに変換されますか?
"IsFalse"と "IsTrue"は、基本的に暗黙的にブール値に変換されますか?私はそれらがショートサーキット演算子(AndAlso、OrElse)によって使用されていることを知っていますが、それらは機能や内部動作の点で異なり、ブール値への暗黙的な変換ですか?"IsFalse"と "IsTrue"は基本的に暗黙的にbooleanに変換されますか?
明示的なのブール値への変換があります。
あなただけが書かれている構造の= True
または= False
評価を定義するために、あなたのコードでそれらを使用することができますので、あなたが等しくなるあなたの構造のどのような値を決定するためのルールを定義する必要が真または偽
Public Structure p
Dim a As Double
Public Shared Operator IsFalse(ByVal w As p) As Boolean
Dim b As Boolean
' Insert code to calculate IsFalse of w.
Return b
End Operator
Public Shared Operator IsTrue(ByVal w As p) As Boolean
Dim b As Boolean
' Insert code to calculate IsTrue of w.
Return b
End Operator
End Structure
これらの演算子の
戻り値は
TrueまたはFalseのどちらかでなければなりません詳細はこちらのページを参照してください:https://msdn.microsoft.com/en-us/library/w6tz4ad8.aspx
これらのメソッドは、少し不健康に見えます。私は彼らが存在していたことさえ知らなかった。私が "myStruct AndAlso myOtherStruct then if"のようなコードを見た場合、私の最初の反応は、誰かが厳密なコンパイルを忘れていないかどうかをチェックすることです。奇妙なのは、構造体がtrueまたはfalseに評価されることができますが、実装が真であるか偽であるかを判断するロジックを調べる必要があることです。その論理が何であれ、私はむしろそれを明示的にテストしたいと思う。 –