Introduction
In c# 3.0 and later versions many new features are available but some people are not aware of them. There are some new features explained below In C# 3.0 and later.
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; }
    }
  }
  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