6 Ocak 2011 Perşembe

C# da Constructor'lar 2

// decimal tanimlanan degişken tam sayi ise birsey yazilmaz, virgullu sayi olursa miktarin sonuna 'm' harfi koymaliyiz ..!
        static void Main(string[] args)
        {
            kitap ki = new kitap("wap", "wapper");
            Console.WriteLine(ki.ekranaYazdir());

            // constructer overloading edildi..!
            kitap k2 = new kitap("wap", "wapper", "wappest", 100.1m);
            Console.WriteLine(k2.yayinEvi+" " + k2.fiyat);

            kitap k3 = new kitap("wap1" , "wap2" , 12);
            Console.WriteLine(k3.ekranaYazdir());//this ile
        }
    }
    class kitap
    {
        private string yazar;
        private string isim;
        public string yayinEvi;
        public decimal fiyat;

    
        public kitap(string Kisim, string kYazar)
        {
            isim = Kisim;
            yazar = kYazar;
        }
        public kitap(string isim, string yazar, decimal fiyat)
            :this(isim,yazar) //string string parametre alan degişkene gonderdik
            // yapici metodlar için gecerlidir..!
        {
            this.fiyat = fiyat;
        }

        public kitap(string yazar, string isim, string yayinEvi, decimal fiyat)
        {

            this.fiyat = fiyat; // this ile bizim degişkenlerimizi belirtiriz..!
            this.yazar = yazar; // geri kalan ise parametreleri belirtir..!!
            this.yayinEvi = yayinEvi;
            this.isim = isim;
        }

        public string ekranaYazdir()
        {
            return "isim = " + isim + " yazar " + yazar + " fiyat" + fiyat;
        }
    

C# da Constructor'lar

    Yeni oluşturduğumuz bir sinifin tanimlamalarini  ( string isim , soyIsim ) gibi degerleri birer default deger tanimlamak için kullanilan bir yöntemdir en basiti ile , bunla beraber bir sürü daha özelligi vardir, bu özelliklere girilmeyecek şimdilik basitçe :


// yapici metodlarin geri donuşu yoktur
    // yapici metodun ismi class ismi ile ayni olmalidir .!
    class Program
    {
        static void Main(string[] args)
        {
            damacana d = new damacana();// default constructer'i caliştirir
            Console.WriteLine(d.fiyat);

            // 3 degişken alan constructeri caliştirir..!!
            damacana d2 = new damacana(30, "kalabak", 13);
            Console.WriteLine(d2.fiyat+" " +d2.marka+" "+d2.kapasite);
        }
    }

    class damacana //varsayilan ( default ) yapici metod
    {
        public int kapasite;
        public decimal fiyat;
        public string marka;
        public damacana()
        {
            fiyat = 50;
        }
        public damacana(decimal dfiyat,string dmarka,int dkapasite )
        {
            kapasite = dkapasite;
            fiyat = dfiyat;
            marka = dmarka;
        }
    }

c# da params nedir ne işe yarar

      C# da metot kullanimini daha bir genişletmek için kullanilan yöntemdir, şöyle ki : metodlara belirli sayida degişken ( parametre) gonderilir , fakat params içeren metodlar ise farkli sayida değişken göndermek mümkun kiliniyor,


class Program
    { // metoda gonderilecek degişkenlerin sayisi belli olmadigi zaman kullanilacak yöntemdir..!
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.WriteLine(p.ortalamaHesap(1,3,4,5,7));
          
          

        }


        // kendi içerisinde bir dizi oluşturuyor onu diziye aktariyor
        // double baslangic ve double a  dizi dişina itiliyor
      
        double ortalamaHesap( params double[] notlar)
        {
          
        double toplam = 0;
        foreach (double sayi in notlar)
        {
            toplam += sayi;
        }
        return toplam / notlar.Length;


    }