代码之家  ›  专栏  ›  技术社区  ›  Madmenyo

如果对象2=对象1[重复],则引用等于返回false

  •  1
  • Madmenyo  · 技术社区  · 8 年前

    我有一段代码:

    Rect a = new Rect(0, 0, 4, 4);
    Rect b = new Rect(0, 0, 4, 4);
    print(Object.ReferenceEquals(a, b)); //prints false
    print(Object.ReferenceEquals(a, a)); //prints false
    b = a;
    print(Object.ReferenceEquals(a, b)); //prints false
    

    我希望能够确定引用是否是内存中的同一个对象,因此对该对象的引用也是相同的。所以第一次打印应该会返回 false 第二次打印应返回 true 这个 Rect 来自Unity引擎,但如果需要,我可以将其封装在自己的类中并重写equals。但我希望第6行打印出来 真的 自从 a = b 将两个变量指向相同的引用。

    1 回复  |  直到 8 年前
        1
  •  6
  •   spender    8 年前

    Rect 似乎是一个结构,而不是引用类型。 ReferenceEquals will always return false for structs ,因为拳击。