A property is a type of method (accessor) that are used like a public data member.. but they give you a way to read/write/evaluate some private field. This = safety + flexibility in your code.
Properties usually edit the attributes.
Just something new and fun. This is what we use today (some synonymous hybrid mix "thing"):
// New auto-property after .NET 3.0 public String Name { get; set; }
In a lot of ways, this is easier, shorter, and MUCH nicer to the eye!
This is what we used to use
// Old-fashioned attribute (before .NET 3.0) private String _title; // Old-fashioned property (before .NET 3.0) public String Title { get { return _title; } set { _title = value; } }
However, you lose the ability/flexibility to edit the individual parts of it when the attribute used to be wrapped around a layer of property! There are only rare instances you would need this.. but those times do exist!
Here is one for you! For instance.. if you are making a "dummy" database and seeding it -- let's say you were making a nice end to end ASP .NET MVC.. and you did not want to open up a SQL database just yet. This "dummy" database would help you bounce off your ideas for the MVC with its own little pseudo-database that is made just to get things up and running a little quicker on the front end! So.. you could not do this:
private List_recipes = new List { new Recipe() {ID = 1, Title = "My yummy food", Directions = "Put directions here.", Ingredients = "Yummy, Delicious, Butter"}, new Recipe() {ID = 2, Title = "My 2nd yummy food", Directions = "More directions here.", Ingredients = "Yummy, Delicious, Sugah"}, new Recipe() {ID = 3, Title = "My 3rd yummy food", Directions = "All these directions!", Ingredients = "Yummy, Delicious, Synonym-of-Yummy-Delicious"}, }; // THIS WILL NOT WORK below!!! EQUALS SAD little code!!! public List Recipes { get; set; }
.. for the reason stated above (you can't edit the specific attribute and property out!).
However.. this works as a whole!
private List_recipes = new List { new Recipe() {ID = 1, Title = "My yummy food", Directions = "Put directions here.", Ingredients = "Yummy, Delicious, Butter"}, new Recipe() {ID = 2, Title = "My 2nd yummy food", Directions = "More directions here.", Ingredients = "Yummy, Delicious, Sugah"}, new Recipe() {ID = 3, Title = "My 3rd yummy food", Directions = "All these directions!", Ingredients = "Yummy, Delicious, Synonym-of-Yummy-Delicious"}, }; // HAPPY LITTLE CODE ;) public List Recipes { get { return _recipes; } set { _recipes = value; } }
See how the variable _recipes is actually used now??? This is one of those useful rare instances..