操作符 == 方法

bool operator ==(
  1. Object other
)
override

相等运算符。

对于所有 Object,默认行为是如果且仅当此对象和 other 是同一个对象时返回 true。

覆盖此方法以指定类上的不同相等关系。覆盖方法仍然必须是等价关系。也就是说,它必须满足以下条件:

  • 总:对于所有参数,必须返回一个布尔值。它不应该抛出异常。

  • 自反性:对于所有对象 oo == o 必须为真。

  • 对称性:对于所有对象 o1o2o1 == o2o2 == o1 必须要么都为真,要么都为假。

  • 传递性:对于所有对象 o1o2o3,如果 o1 == o2o2 == o3 都为真,则 o1 == o3 必须为真。

此方法还应随时间保持一致,因此两个对象是否相等只有在至少一个对象被修改时才会改变。

如果子类覆盖了相等运算符,它还应覆盖 hashCode 方法以保持一致性。

实现

bool operator ==(other) =>
    other is Rectangle &&
    left == other.left &&
    top == other.top &&
    right == other.right &&
    bottom == other.bottom;