• Gonzako@lemmy.world
    link
    fedilink
    arrow-up
    5
    arrow-down
    1
    ·
    1 day ago

    I’ve only had to implement equality in C# but that didn’t seem that hard of a problem. you just expand the operator = function

      • GetOffMyLan@programming.dev
        link
        fedilink
        arrow-up
        5
        arrow-down
        1
        ·
        edit-2
        1 day ago

        I just use the HashCode class and compare the results.

        Pretty sure there’s a source generator for it as well nowadays.

      • Deckweiss@lemmy.world
        link
        fedilink
        arrow-up
        1
        arrow-down
        5
        ·
        edit-2
        1 day ago

        My IDE can do that for me. And it was able to do that pre AI boom. Yes, the code ends up more verbose, but I just collapse it.

        So from a modern dev UX perspective, this shouldn’t be a major difference.

        • porous_grey_matter@lemmy.ml
          link
          fedilink
          arrow-up
          5
          arrow-down
          1
          ·
          1 day ago

          Even if the tool works perfectly, you have to run it every time you change something. It’s not the end of the world, but it’s still much nicer to just have a macro to derive it at compile time.

    • copygirl@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 day ago

      Then you should also override Equals(object), GetHashCode, and implement IEquatable<T>.

      Thankfully a lot of the usual boilerplate code can be avoided using a record class or struct:

      public record Person(string Name, uint Age);
      
      • Gonzako@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        23 hours ago

        Oh well, It does show how little I do have to actually use that. It just hasn’t come up that much