How does operator overloading of true and false work?

前端 未结 3 1004
清酒与你
清酒与你 2020-12-06 11:53

You can overload operator true and false i looked at examples and found this http://msdn.microsoft.com/en-us/library/aa691312%28v=vs.71%29.aspx

I completely dont und

3条回答
  •  清歌不尽
    2020-12-06 12:19

    When overloading the true and false operators they don't just return true and false, they are used to determine if a value of your type is considered to be true or false.

    If for example a zero value in your class represents false, then a non-zero value represents true:

    public static bool operator true(MyTimeSpan t) { return t.Value != 0; }
    public static bool operator false(MyTimeSpan t) { return t.Value == 0; }
    

    As the operators are each others inverse, the compiler doesn't need to use both to determine if a value is true or false. If you write if(obj) the compiler will use the true operator to determine if the value is true.

提交回复
热议问题