Properties are used to encapsulate the state of an object in a class. This is done by creating Read Only, Write Only or Read Write properties. Traditionally, methods were used to do this. But now the same can be done smoothly & efficiently with the help of properties.
A property with Get() can be read & a property with Set() can be written. Using both Get() & Set() make a property Read-Write. A property usually manipulates a private variable of the class. This variable stores the value of the property. A benefit here is that minor changes to the variable inside the class can be effectively managed. For example, if we have earlier set an ID property to integer and at a later stage we find that alphanumeric characters are to be supported as well then we can very quickly change the private variable to a string type.
using System;
using System.Collections.Generic;
using System.Text;
namespace CreateProperties
{
class Properties
{
//Please note that variables are declared private
//which is a better choice vs declaring them as public
private int p_id =
-1;
public int ID
{
get
{
return p_id;
}
set
{
p_id = value;
}
}
private string m_name
= string.Empty;
public string Name
{
get
{
return m_name;
}
set
{
m_name = value;
}
}
private string
m_Purpose = string.Empty;
public string P_Name
{
get
{
return m_Purpose;
}
set
{
m_Purpose = value;
}
}
}
}
using System;
namespace CreateProperties
{
class Program
{
static void Main(string[] args)
{
Properties object1 = new
Properties();
//Set All Properties One by One
object1.ID = 1;
object1.Name = "www.code-kings.blogspot.com";
object1.P_Name = "Teach C#";
Console.WriteLine("ID " + object1.ID.ToString());
Console.WriteLine("\nName " + object1.Name);
Console.WriteLine("\nPurpose " + object1.P_Name);
Console.ReadKey();
}
}
}
Also,
properties can be used without defining a a variable to work with in the
beginning. We can simply use get & set without using the return
keyword i.e. without explicitly referring to another previously declared
variable. These are Auto-Implement properties. The get & set
keywords are immediately written after declaration of the variable in brackets. Thus, the property name & variable name are
the same.
using System;
using System.Collections.Generic;
using System.Text;
public class School
{
public int No_Of_Students{ get; set; }
public string Teacher{ get; set; }
public string Student{ get; set; }
public string Accountant{ get; set; }
public string Manager{ get; set; }
public string Principal{ get; set; }
}
Please Note :
** Do not Copy & Paste code written here ; instead type it in your Development Environment
** Testing done in .Net Framework 4.0 but code should be very similar for previous versions of .Net