Comment by xnorswap

3 months ago

Previously, if you wanted to add that Trim in, you needed to define the field behind.

You could have:

    public string Name { get;set; }

Or you could have:

    private string name;

    public string Name {
      get;
      set { this.name = value?.Trim() ?? string.Empty; }
    }

So you needed in the second case to also declare name as a field. The new syntax avoids having to do that "double" declaration.

> The new syntax avoids having to do that "double" declaration.

Yes, that's right. It is in other words a way to access the compile-time generated backing field for auto-implemented properties. It is quite nice to be honest, I just wish they presented a bit of context in their announcements.