A property is a set of accessors that give you access to some data. It
allows you to performs some additional calculates.
For example, suppose that you had an object that has a DiscountPercent
property where a sales person might want to set some purchase discount. You
might want to include validation in the property to ensure the value entered
is only between 0 and 100.
Properties also do not have to be directly related to some single values.
You might have a property called Subtotal, which would be calculated. You
would not be able to change the value since the subtotal is often
calculated.
To contrast, fields are only variables, no different then a variable you
define within your method, except that they are at the class level (global
to the class).
Although it is often to have variables that mean specific things that do not
require code logic, I try never to have a public field and have all access
go through properties, regardless of how simple the value is.