Introduction
Auto-implemented properties:
Auto-implemented properties make property-declaration more concise when no additional logic is required in the property accessors. They also enable client code to create objects. When you declare a property as shown in the following example, the compiler creates a private, anonymous backing field that can only be accessed through the property's get and set accessors.
Let’s see the old writing method.
public class Person
{private string _firstName;
private string _lastName;
private int _age;
public string FirstName
{get
{ return _firstName; }set
{ _firstName = value; }}
public string LastName
{get
{ return _lastName; }set
{ _lastName = value; }}
public int Age
{get
{ return _age; }set
{ _age = value; }}
}
Now we can see the enhanced implementation.
public class Person
{public string FirstName
{get;
set;
}
public string LastName
{get;
set;
}
public int Age
{get;
set;
}
}
Note: This way is possible only when you don’t want to write any logical implementation in the getter/setter part. If you want to write implementation then you must go through the old method.
Object & Collection Initializers:
Object/Collection initializers, let you assign values to any accessible fields or properties of an object at creation time without having to explicitly invoke a constructor.
Considering above example now we initialize of an object with the old method.
Person person1 = new Person();person1.FirstName = "Munavvar";person1.LastName = "Husein";person1.Age = 25;
Now in place of this we can write it like,
Person person1 = new Person{ FirstName = "Munavvar", LastName = "Husein",Age = 25
};
In the case of Collections same thing would be done as under. Considering above examle to make a list with old method.
List<Person> lstPerson = new List<Person>();Person persons = new Person();persons.FirstName = "Munavvar";persons.LastName = "Husein";persons.Age = 25;
lstPerson.Add(persons);
persons = new Person();persons.FirstName = "Rikin";persons.LastName = "Patel";persons.Age = 26;
lstPerson.Add(persons);
Now in place of this we can write it like,
List<Person> lstPerson = new List<Person>;{ new Person { FirstName = "Munavvar", LastName = "Husein",Age = 25
},
new Person { FirstName = "Rikin", LastName = "Patel",Age = 26
}
};
Conclusion:
As per enhanced feature we can just reduse the burdon of typing extra statements with no loss of performance.
No comments:
Post a Comment