C# 3.0 Object Initializers

Dec 16, 2007 17:37

В .NET 3.5 код:

class Oini
{
   public static void Main()
   {
      Customer c = new Customer() { Name = "Bart", City = "Redmond", Age = 24 };
   }
}

не аналогичен следующему:

class Oini
{
   public static void Main()
   {
      Customer c = new Customer();
      c.Name = "Bart";
      c.City = "Redmond";
      c.Age = 24;
   }
}

Эквивалент первому будет:

class Oini
{
   public static void Main()
   {
      Customer __t = new Customer();
      __t.Name = "Bart";
      __t.City = "Redmond";
      __t.Age = 24;
      Customer c = __t;
   }
}

В некоторых случаях может пригодится знание об этом временном объекте.
Previous post Next post
Up