Clear        


                
                    namespace _23_ValueAndReferenceTypes.ReferenceTypes
{
    public class ReferenceTypesDemo2
    {
        public void Calistir()
        {
            Sehir sehir1 = new Sehir() { Adi = "Zonguldak" }; // atama referans üzerinden gerçekleşir,
                                                              // sehir1 Adi özelliği olarak Zonguldak atanmış objeyi refere eder,
                                                              // örneğin sehir1'in obje için tuttuğu adres E3F3 olsun

            Sehir sehir2 = new Sehir() { Adi = "Yalova" }; // örneğin sehir2'nin obje için tuttuğu adre G4H4 olsun

            Console.WriteLine($"1) Şehir 1: {sehir1.Adi}, Şehir 2: {sehir2.Adi}");
            // konsola "1) Şehir 1: Zonguldak, Şehir 2: Yalova" yazdırır

            sehir1 = sehir2; // atama referans üzerinden gerçekleşir yani E3F3 olan sehir1'in adresi G4H4 olur 

            Console.WriteLine($"2) Şehir 1: {sehir1.Adi}, Şehir 2: {sehir2.Adi}");
            // konsola "2) Şehir 1: Yalova, Şehir 2: Yalova" yazdırır

            sehir2.Adi = "İzmir"; // hem sehir1 hem de sehir2 referans değişkenleri G4H4 adresi üzerinden Adi özelliği Yalova olarak atanmış
                                  // objeyi refere ettiğinden, sehir2'nin Adi özelliğinin İzmir atanması sonucu objenin Adi özelliği
                                  // İzmir olarak güncellenir ve hem sehir1.Adi hem de sehir2.Adi, Adi özelliği İzmir olan aynı objeye ulaşır

            Console.WriteLine($"3) Şehir 1: {sehir1.Adi}, Şehir 2: {sehir2.Adi}");
            // konsola "2) Şehir 1: İzmir, Şehir 2: İzmir" yazdırır
        }
    }



    class Sehir
    {
        public string Adi { get; set; }
    }
}