示例#1
0
        static void Main(string[] args)
        {
            int sayi1 = 10;
            int sayi2 = 20;

            sayi1 = sayi2;
            sayi2 = 65;
            //sayi1 ? !! cevap 20 !!

            //sayi1 = sayi2 olduğunda sayi1'e atanan değer artık 20'dir.


            //değer tipler = int, decimal, float, doublei bool (sayisal değer alabilen)
            //referans tipler = array, class, interface


            //ancak referans tiplerde bu şekilde gerçekleşmez. array değişkenlerini belleğin stack kısmında tutar. array değerlerini ise belleğin heap kısmında tutar. bellekte her iki kısımda da değer ve değişkene aynı referans değerini verir. (101: sayilar1, {1,2,3}; 102: sayilar2, {10,20,30})
            //yani sayilar1 = sayilar2 eşitliği durumunda bellekteki referans değerleri eşitlenir.
            int[] sayilar1 = new int[] { 10, 20, 30 };
            int[] sayilar2 = new int[] { 100, 200, 300 };
            sayilar1    = sayilar2;
            sayilar2[0] = 999;
            //sayilar1[0] ??  !! cevap 999 !!


            /**/
            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Engin";
            person2           = person1;
            person1.FirstName = "Arif";

            Console.WriteLine(person2.FirstName);
            //Bellekteki adresler eşitlenmiş oldu, eşitliğin sağ tarafı baz alındığı için bundan dolayı person1'in değeri neyse person2'nin değeri de o olur. Cevap: Arif.



            Employee employee = new Employee();

            employee.FirstName = "Ali";


            Customer customer = new Customer();

            customer.FirstName      = "Salih";
            customer.CustomerNumber = 012331;

            //bunu yapabildik çünkü inheritance(miras) aldık
            Person person3 = customer;

            customer.FirstName = "Ahmet";

            Console.WriteLine(((Customer)person3).CustomerNumber);

            PersonManager personManager = new PersonManager();

            personManager.Add(employee);
        }
示例#2
0
        static void Main(string[] args)
        {
            //int sayi1 = 10;
            //int sayi2 = 30;
            //sayi1 = sayi2;
            //sayi2 = 65;
            ////sayi1 ?? (30karşim)
            ////sayi 1 e değer atadık ve bitti
            ////fakat aşağıda reference tipte birbirine bağlılar yani ayıramayız.
            //int[] sayilar1 = new int[] { 10, 20, 30 };
            //int[] sayilar2 = new int[] { 100, 200, 300 };
            //sayilar1 = sayilar2;
            //sayilar2[0]=999;
            //sayilar1[0] 999 basacak çünkü referans tip sayılar 1 ve sayılar 2 bağlantılı, referans tip

            //int deciml float double bool bunlar değer tip
            //array, class, interface bunlar referans tiptir


            Person person1 = new Person();
            Person person2 = new Person();

            person1.Firstname = "Engin";
            person2           = person1;
            person1.Firstname = "Derin";
            Console.WriteLine(person2.Firstname);
            //referans tipe başka bir örnek
            //person2=person1 diyince person1 in adresini person2 ye atadık
            //bu yüzden person1 in adı değiştirince person2nin de adı değişti

            Customer customer = new Customer();

            customer.Firstname = "Salih";
            Employee employee = new Employee();

            customer.CreditCardNumber = 123456789;
            employee.Firstname        = "Enes";
            //customer = employee; diyemeyiz çünkü bunlar farklı tip
            //int ve stringi biribirine atayamayız gibi

            Person person3 = customer; // buna kızmadı çünkü customer aynı zamanda person

            Console.WriteLine(person3.Firstname);

            //Customer customer1 = person1; person customer olmadığından bunu yapamayız
            Console.WriteLine(((Customer)person3).CreditCardNumber); // bu baxing demek person3ün creditcardnumberi görebildik
            Person person4 = employee;

            employee.EmployeeNumber = 3162;
            //Console.WriteLine(((Employee)person4).EmployeeNumber);

            //hocam ne gerek var dersen de cevap satır 78de

            PersonManager personManager = new PersonManager();

            personManager.Add(employee); //gördüğün gibi employee gönderebiliyoruz
        }
示例#3
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            //int sayi1 = 10;
            //int sayi2 = 30;
            //sayi1 = sayi2;
            //sayi2 = 65;
            ////sayi1??? //int, decimal,float,enum,boolean yani sayısal değerler value types = DEĞER TİPLERİ

            //int[] sayilar1 = new int[] { 10, 20, 30 };
            //int[] sayilar2 = new int[] { 100, 200, 300 };
            //sayilar1 = sayilar2;
            //sayilar2[0] = 999;
            ////sayilar1?????
            ////array ler class lar interface ler REFERANS TİPLERİDİR = reference types sayilar1in adresi = sayilar2nin adresidir diyoruz.

            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Engin";

            person2           = person1; // Değer eşitlemesi değil, adres eşitlemesi yapıyoruz.
            person1.FirstName = "Müyesser";

            Console.WriteLine(person2.FirstName); // Müyesser yazacaktır.



            Customer customer = new Customer();

            customer.FirstName        = "Salih";
            customer.CreditCardNumber = "545455";

            Employee employee = new Employee();

            employee.FirstName = "Veli";

            Person person3 = customer; //

            customer.FirstName = "Ahmet";


            Console.WriteLine(person3.FirstName);
            //customer = employee; // çalışmaz. customer a employee ı atayamazsın farklı türler.
            //Console.WriteLine(((Customer)person3).CreditCardNumber);

            PersonManager personManager = new PersonManager();

            personManager.Add(customer);
        }
示例#4
0
        static void Main(string[] args)
        {
            //int,decimal,float,enum,boolean value types
            int sayı1 = 10;
            int sayı2 = 30;

            sayı1 = sayı2;
            sayı2 = 65;
            //sayı1=30


            //arrays, class, interface.. reference types
            int[] sayılar1 = new int[] { 1, 2, 3 };
            int[] sayılar2 = new int[] { 10, 20, 30 };

            sayılar1    = sayılar2;
            sayılar2[0] = 1000;
            //sayilar1[0]=1000

            //-------------------------------------------//


            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Beyza";
            person2           = person1;
            person1.FirstName = "Derin";

            Console.WriteLine(person2.FirstName);


            Customer customer = new Customer();

            customer.FirstName        = "Merve";
            customer.CreditCardNumber = "3448992919";

            Employee employee = new Employee();

            employee.FirstName = "Gizem";

            Person person3 = customer;

            Console.WriteLine(person3.FirstName);

            Console.WriteLine(((Customer)person3).CreditCardNumber);

            PersonManager personManager = new PersonManager();

            personManager.Add(employee);
        }
示例#5
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

           // int sayi1 = 10;
           // int sayi2 = 30;
           // sayi1 = sayi2;
           // sayi2 = 65;
            //sayi1= ? 30 olur

           // int[] sayilar1 = new int[] { 10, 20, 30 };
           // int[] sayilar2 = new int[] { 100, 200, 300 };
            //sayilar1 = sayilar2;
            //sayilar2[0] = 999;
            //sayilar1[0]= ? 999  olur.

            //int,decimali float doun-ble bool= değer tip sadece değeri kopyalar ve ilişki biter olay değer ile ilgilidir.
            //array , class, interface -> referans tiptir.

            //stack değer tip olanlar burda gerçekleşir            //heap 
            //sayi1 =30 sayi1 değeri 30 dur diye okunur .

            //stack                                                            //heap
            // 101/sayilar1 tanımlanır  new dediğn zamna heapte yer açılır   ---------->         101/ [10,20,30]
            // 102/sayilar2                                                  -------------->     102/[100,200,300]         

                //ikisi de referans tip olduğu için adrsi kopyalar yani adres atar 
               // 102 n referans numarasını 101  referansı yerine atanır.
               // ve artık sayilar1 adresi referansi 102dir ve 101 referanslı arrrayı kimse tutmuyor ve garbage collection ile silinir bellekten.
        //Console.WriteLine('Sayilar[0]='+sayilar1[0]);

            Person person1=new Person();
            Person person2=new Person();
            person1.FirstName="Emine";
            person2=person1;
            person1.FirstName="Zeynep";
            //Console.WriteLine(person2.FirstName);

            Customer customer=new Customer();
            customer.FirstName="ümit";
            customer.CreditCardNumber="1234567890";
            Employee employee=new Employee();
            employee.FirstName="ela";
            Person person3=customer;
            customer.FirstName="tuğba";
          //  Console.Writeline(((Customer)person3).CreditCardNumber);

            PersonManager.Add(employee);

        }
示例#6
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            //int sayi1 = 10;
            //int sayi2 = 30;
            //sayi1 = sayi2;
            //sayi2 = 65;
            //Console.WriteLine(sayi1); //30

            //int[] sayilar1 = new int[] { 10, 20, 30 };
            //int[] sayilar2 = new int[] { 100, 200, 300 };
            //sayilar1 = sayilar2;
            //sayilar2[0] = 999;
            //Console.WriteLine("Sayılar1[0] = "+sayilar1[0]); //999

            //Değer tipler: int,decimal,float,double,bool
            //Referans tipler: array,class,interface

            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Engin";

            person2           = person1;
            person1.FirstName = "Derin";

            Console.WriteLine(person2.FirstName);

            Customer customer = new Customer();

            customer.FirstName        = "Salih";
            customer.CreditCardNumber = "1234567890";
            Employee employee = new Employee();

            employee.FirstName = "Veli";

            Person person3 = customer;

            customer.FirstName = "Ahmet";

            Console.WriteLine(person3.FirstName);

            //Console.WriteLine(((Customer)person3).CreditCardNumber);

            PersonManager personManager = new PersonManager();

            personManager.Add(employee);
        }
        static void Main(string[] args)
        {
            int sayi1 = 10;
            int sayi2 = 30;

            sayi1 = sayi2;
            sayi2 = 65;
            //sayi1 nedir? 30
            //int decimal float double bool değertip
            Console.WriteLine(sayi1);

            int[] sayilar1 = new int[] { 10, 20, 30 };
            int[] sayilar2 = new int[] { 15, 25, 35 };
            sayilar1    = sayilar2;
            sayilar1[0] = 99;
            //sayilar1[0] elemanı nedir? 99 referans olduğundan
            //array,class, interface ler referans tiplerdir.
            Console.WriteLine(sayilar1[0]);

            Console.WriteLine("------------------");

            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Helen";
            person2           = person1;
            person1.FirstName = "Ayten";
            Console.WriteLine(person2.FirstName);
            person2.FirstName = "Derin";
            Console.WriteLine(person1.FirstName);

            Customer customer = new Customer();

            customer.FirstName        = "Arzu";
            customer.CreditCardNumber = "12345";

            Employee employee = new Employee();

            employee.FirstName = "Eda";

            Person person3 = customer;

            Console.WriteLine(person3.FirstName);
            Console.WriteLine(((Customer)person3).CreditCardNumber);

            PersonManager personManager = new PersonManager();

            personManager.Add(employee);
        }
示例#8
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            int sayi1 = 10;
            int sayi2 = 65;

            sayi1 = sayi2;
            sayi2 = 65;
            // sayi1 kaç ? 30

            int[] sayilar1 = new int[] { 10, 20, 30 };
            int[] sayilar2 = new int[] { 100, 200, 300 };
            sayilar1    = sayilar2;
            sayilar2[0] = 999;
            // sayilar[0] ? 999

            // int, string, double,float,bool -> değer tip
            // array, class, interface -> referans tip


            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirstName = "Engin";
            person2           = person1;
            person1.FirstName = "Seda";

            Customer customer = new Customer();

            customer.FirstName = "Salih";
            Employee employee = new Employee();

            Person person3 = customer;

            //person3. dediğimizde creditcarta erişemiyoruz
            ///çünkü person classı içerisinde öyle bir değerimiz yok.
            ///creditcardnumber değerine eişmek için Customer class'ına boxing yapıyoruz.
            Console.WriteLine(((Customer)person3).CreditCardNumber);


            PersonManager personManager = new PersonManager();

            personManager.Add(employee);
        }
示例#9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            int sayi1 = 10;
            int sayi2 = 30;

            sayi1 = sayi2;
            sayi2 = 65;
            //sayi1?? 30

            int[] sayilar1 = new int[] { 10, 20, 30 };
            int[] sayilar2 = new int[] { 100, 200, 300 };
            sayilar1    = sayilar2;
            sayilar2[0] = 999;
            //sayilar1[0]=? 999


            //değer tipleri: int, decimal, flood, double, bool(0,1 tutar)...
            //sayılsal görüntüler.

            //referans tip: array, class, interface

            //bellekte stack ve heap bölümleri var
            //değer tipleri stackte gerçekleşir. sayi1=10 dediğinde orada gerceklesir
            //sayi1 in değeri 10 diye okuruz
            //sayi1 in değeri sayi2nin değeridir. sayi2'nin kendisiyle alakası yokk
            //sadece değeriyle alakası var

            //peki referans tipler
            //new demek belleğin heap bölümünde bir adres(refrans no) oluştur
            //örneğin 17 ve 18. satıda sayilar1'in referans nosu 101, sayılar2nin 102
            //sayılar1'in referans numarası sayılar2'nin referans numarasına eşittir
            //sayilar1'in yeni referans nosu 102
            //c gibi dillerde pointer olarak karsımıza cıkar
            //peki 101. adrese ne oldu. - silindi!
            //deneme 1234


            //////////////////////////////////////////////////////////

            Person personel1 = new Person();
            Person personel2 = new Person();

            personel1.Name = "A";
            personel2      = personel1;                                  //personel2'nin referans numrasını(adresi) personel1 ile aynı

            Console.WriteLine("Personel 2'nin ismi: " + personel2.Name); //Cıktı : A


            Customer customer = new Customer();

            customer.Name = "XYZ";

            Person person3 = customer;

            // Customer = Employee; bunları hop atayamazsınız. int ile string gibi
            //peki az önce Customer = Employee'yi birbirine atayamıyorken neden person3 = customer atayabildim ? Cevap: Customer Persondan miras almıstır. Person miras verdiği için referans alabilir.
            //Base sınıfına(Personel), yavru sınıflardan(Alt sınıf, kalıtım yoluyla atanan sınıf vs) referans atayabilirsiniz
            Console.WriteLine(person3.Name);

            //person class'i miras alan sınıfların adresini tutabilir. ---- asagıdaki personmanager class'indan görebilirsiniz
            Employee employee1 = new Employee();

            employee1.Name = "Erhan";
            PersonManager personManager = new PersonManager();

            personManager.Add(employee1); //Parametresi Person olan metoda employee sınıfından nesne gönderdik.
        }
示例#10
0
        static void Main(string[] args)
        {
            int sayi1 = 10;               // sayi1 in DEĞERİ 10
            int sayi2 = 30;               // sayi2 in DEĞERİ 30

            sayi1 = sayi2;                // sayi1 in değeri = sayi2 nin değeri => yani sadece değeri. sayi2 ile bir alakamız yok. yani sayi1 kendi değerini kendi değiştirebilir.

            sayi2 = 65;                   // sayi1, sayi2 nin o anki değerine eşitlendi(yukarıda). sayi1 bu işlemden etkilenmez.

            // sayi1 = 30


            int[] sayilar1 = new int[] { 10, 20, 30 };
            int[] sayilar2 = new int[] { 100, 200, 300 };
            int[] sayilar3 = new int[0];                          // sıfır elemanlı bir array tanımlamış oldum
            int[] sayilar4;                                       // referans numarası tutmayan sadece stack kısmında oluşturulmuş  bir array, new lemek veya referansını tutabileceği  bir değere eşitlenmelidir.


            sayilar1    = sayilar2;              // sayi1, sayi2 nin adres bilgisini alıyor. ve böylelikle sayi1 için eski adresi silinir tabi adrste tutulan bilgilerle beraber => {10 ,20, 30}
            sayilar2[0] = 999;

            // sayilar1[0] = 999               // aynı adres bilgilerini almalarından dolayı değişikler sayi1 ve sayi2 içinde aynı gerçekleşir.
            // sayilar2[1] = 200



            // int, decimal, float, double, bool = değer tip = anlık olarak eşitleme gerçekleşiyor. => STACK

            // array(dizi), class, interpace = referans tip = adresleme gerçekleşiyor. yani adresler eşitleniyor. => HEAP



            Person person1 = new Person();
            Person person2 = new Person();

            person1.FirtName = "Yiğit";

            person2          = person1;               // referance tip. person2 ninde FirstName i Yiğit olur. person2 artık person1 in adres bilgisini tutuyor.
            person1.FirtName = "Derin";               // person1 ve person2 içinde FirstName değeri Derin olarak değişir.(adreslemeden dolayı)

            Console.WriteLine(person2.FirtName);



            Customer customer = new Customer();

            customer.FirtName         = "Pınar";
            customer.CreditCardNumber = "1234567890";

            Employee employee = new Employee();

            employee.FirtName = "Veli";


            // customer = employee              aynı türde olmayan ifadeleri birbirine eşitleyemezsin int = string yapamadığın gibi

            Person person3 = customer;          // burda problem çıkmadı. çünkü  aşağıda Costumer aynı zamanda bir Person demiştik. adres eşitlemesi yaptık.

            Console.WriteLine(person3.FirtName);


            // Boxing

            Console.WriteLine(((Customer)person3).CreditCardNumber);           // person3 üzerinden kart bilgisine ulaşmamın sağladı. Belirtilen tip(Customer) çerçevesinde boxing yapıldı.


            PersonManager personManager = new PersonManager();

            // add fonksiyonuna üç tipte veriyi gönderebiliyorum.
            personManager.Add(person3);
            personManager.Add(customer);
            personManager.Add(employee);
        }