Kosntruktor kopiujący i referencja

0

Mam taki testowy kod:

 public class Test
    {
        public Test(int iloscDanych)
        {
            ilosc = iloscDanych;
        }
        public int ilosc = 0;

    }

    public class Rozszerzony
    {
        public Test tescik;
        public Rozszerzony(Test tesow)
        {
            tescik = tesow;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Test rdzenny = new Test(22);
            Rozszerzony rozszerzam = new Rozszerzony(rdzenny);

            rdzenny = null;
            if (rozszerzam.tescik == null)
                Console.WriteLine("JEST NULL");
            else
                Console.WriteLine(rozszerzam.tescik.ilosc);
            Console.ReadLine();
        }
    }

Myślałem, że ustawienie obiektu rdzenny na null spowoduje, że pole tescik w klsaie Rozszerzony też zostanie ustawione na null, ale tak nie jest. Jak mógłbym to osiągnąć?

0

Ale dlaczego? Pole tescik to inny obiekt niż rdzenny.

0

Witam, dziękuję za odpowiedź. Czy istnieje sposób aby jednak tak to działało?

Znalazłem na Stack Overflow takie temat:

http://stackoverflow.com/questions/8069396/setting-a-type-reference-type-to-null-doesnt-affect-copied-type

I wydaje mi się że to ten sam przypadek, czy użycie ref spowoduje to co chcę?

0

Nie spowoduje. Zrób po prostu rozszerzam.tescik = null

1 użytkowników online, w tym zalogowanych: 0, gości: 1