Example #1
0
        static void Main(string[] args)
        {
            //tworzymy prototyp i ustalamy stany
            Przedsiebiorstwo p = new Przedsiebiorstwo();

            p.Nazwa                 = "Nazwa przedsiebiorstwa";
            p.Miejscowosc           = "Gdańsk";
            p.pracownik             = new Pracownik();
            p.pracownik.Imie        = "Jan";
            p.pracownik.Nazwisko    = "Kowalski";
            p.pracownik.hobby       = new Hobby();
            p.pracownik.hobby.Nazwa = "wędkarstwo";

            Przedsiebiorstwo p2 = new Przedsiebiorstwo();

            p2 = p.DeepCopy();

            Console.WriteLine();
            Console.WriteLine("Sprawdzenie hobby pracownika");
            if (Object.ReferenceEquals(p.pracownik.hobby, p2.pracownik.hobby))
            {
                Console.WriteLine("Referencje odwołują się do tego samego obiektu");
            }
            else
            {
                Console.WriteLine("Referencje NIE odwołują się do tego samego obiektu");
            }

            Console.WriteLine();
            Console.WriteLine("Sprawdzenie pracownika");
            if (Object.ReferenceEquals(p.pracownik, p2.pracownik))
            {
                Console.WriteLine("Referencje odwołują się do tego samego obiektu");
            }
            else
            {
                Console.WriteLine("Referencje NIE odwołują się do tego samego obiektu");
            }

            Console.WriteLine();
            Console.WriteLine("Sprawdzenie przedsiębiorstwa");
            if (Object.ReferenceEquals(p, p2))
            {
                Console.WriteLine("Referencje odwołują się do tego samego obiektu");
            }
            else
            {
                Console.WriteLine("Referencje NIE odwołują się do tego samego obiektu");
            }

            Console.ReadKey();
        }
Example #2
0
        public Przedsiebiorstwo DeepCopy()
        {
            Przedsiebiorstwo klon = new Przedsiebiorstwo();

            klon.pracownik             = new Pracownik();
            klon.pracownik.Imie        = this.pracownik.Imie;
            klon.pracownik.Nazwisko    = this.pracownik.Nazwisko;
            klon.pracownik.hobby       = new Hobby();
            klon.pracownik.hobby.Nazwa = this.pracownik.hobby.Nazwa;

            klon.Nazwa       = this.Nazwa;
            klon.Miejscowosc = this.Miejscowosc;

            return(klon);
        }