operator == 方法

bool operator ==(
  1. Object other
)

相等运算符。

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

重写此方法以指定类上的不同相等关系。重写的方法必须仍然是等价关系。也就是说,它必须

  • 总 Berkeley: 必须对所有参数返回布尔值。它绝不能抛出异常。

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

  • 对称性:对于所有对象 o1o2,必须 o1 == o2o2 == o1 同时都为真,或者都为假。

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

该方法还应保持一致性,即在时间上,两个对象是否相等仅在至少一个对象被修改时才会改变。

如果子类重写相等运算符,它还应该重写 hashCode 方法以保持一致性。

实现

bool operator ==(other) =>
    other is Rectangle &&
    left == other.left &&
    top == other.top &&
    width == other.width &&
    height == other.height;