Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Auto-Implemented Properties c#

Tags:

c#

  1. could someone explain me what's the idea behind using Auto-Implemented Properties c#?

    public class Customer
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
    

    I get the motivation to use properties for private field, so we can determine how one can access a private field. But here - it's just like defining the field to be public from the first place. no?

  2. Is there a difference between defining a field to be "public const" or define it to have a get-only property ?

like image 296
Elad Benda Avatar asked May 25 '10 08:05

Elad Benda


2 Answers

A public automatic property is not the same as a public field, they are not binary compatible. If you implement a public field and later on want to add some logic, you will have to change it into a property and thereby introduce a breaking change (because of the binary incompatibility). This is the reason why many conventions state that you should never expose public fields but rather use properties.

So, automatic properties are just a convenient starting point for any simple non-private class value member, allowing one to add logic later on while keeping binary compatibility.

like image 114
Sandor Drieënhuizen Avatar answered Oct 18 '22 23:10

Sandor Drieënhuizen


Properties can be databound, whereas fields can not.

like image 27
Bartek Tatkowski Avatar answered Oct 19 '22 01:10

Bartek Tatkowski