Clonar objetos

<< Click to Display Table of Contents >>

Navigation:  Início >

Clonar objetos

Previous pageReturn to chapter overviewNext page

Cliente.cs

 

   [Serializable]

  class Cliente

   {

      public int Id { get; set; }

      public string Nome { get; set; }

      public DateTime Date { get; set; }

 

      override public string ToString()

       {

          return Id.ToString() + "-" + Nome + "," + Date.ToString("dd/MM/yyyy");

       }

   }

 

Main.cs

 

   class Program

   {

      public static T FazerCopia<T>(T obj)

       {

          using (MemoryStream memoryStream = new MemoryStream())

           {

              BinaryFormatter formatter = new BinaryFormatter();

               formatter.Serialize(memoryStream, obj);

 

               memoryStream.Position = 0;

              return (T)formatter.Deserialize(memoryStream);

           }

       }

 

      static void Main(string[] args)

       {

          Cliente cliente1 = new Cliente() { Id = 1, Nome = "Flavio", Date = DateTime.Parse("02/07/1977") };

          Cliente cliente2;

           cliente2 = FazerCopia<Cliente>(cliente1);

          Console.WriteLine(cliente1);

          Console.WriteLine(cliente2);

 

           cliente1.Nome = "Macho";

          Console.WriteLine(cliente1);

          Console.WriteLine(cliente2);

       }

   }