是" IsFalse"和#34; IsTrue"基本上只是隐式转换为布尔值?

时间:2016-03-23 15:37:34

标签: .net vb.net operators comparison-operators short-circuiting

是" IsFalse"和#34; IsTrue"基本上只是隐式转换为布尔值?我知道它们被短路运算符(AndAlso,OrElse)使用,但它们在功能或内部工作方面是否有任何不同,然后隐式转换为布尔值?

1 个答案:

答案 0 :(得分:2)

显式转换为布尔值。

您只能在代码中使用它们来定义您编写的结构的= True= False评估,因此您必须定义规则以确定您的结构的哪个值等于true或者是假的

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