示例#1
0
        private void cmbSilahlar_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbSilahlar.SelectedIndex < 0)
            {
                return;                                // Herhangi bir  şey secilmediğinde calısmayacak ama hata da vermmeyecek.
            }
            // cmbye aktardıgım elemanları istediğim islemleri yapabilmek için Silahlar tipinde cagırmalıyım ama biz onları string türünde gonderdiğimiz için burada bir donusume ihtiyacımız olacak.Bunun icin parse metodunu kullandık. Parse metodu bizden typeof ile bir type ve string bir deger istiyor. Ve sonucu object olarak donduruyor. bunun icin cast islemi yaptık. yani basına(Silahlar) yazdık.
            Silahlar silah = (Silahlar)Enum.Parse(typeof(Silahlar), cmbSilahlar.SelectedItem.ToString()); // secili enumdan hangi enum oldugunu bulma. //1.yontem

            Silahlar silahb = (Silahlar)cmbSilahlar.SelectedIndex;                                        // enumların index numarası 0 dan baslayıp sıralı oldugu icin bu yontemide kullanabiliriz. cmb den secilen index i silahlar a cast edersek enum u verecektir.
            byte     deger  = (byte)silah;                                                                // Boyle bir donusum yaparsakta enum degerini byte degere donuşturecektir.

            switch (silah)                                                                                // Hangi nesnenin üretilecegine cmb den gelen enum karar verecek.
            {
            case Silahlar.Bıçak:
                seciliSilah = new Bicak();     // gelen deger tipindeki nesneyi üretiyoruz boylece null gelmesinin de önüne geçmiş oluyoruz.
                break;

            case Silahlar.USP:
                seciliSilah = new USP();
                break;

            case Silahlar.Glock:
                seciliSilah = new Glock();
                break;

            case Silahlar.DesertEagle:
                seciliSilah = new DesertEagle();
                break;

            case Silahlar.AK47:
                seciliSilah = new AK47();
                break;

            case Silahlar.M4A1S:
                seciliSilah = new M4A1S();
                break;

            case Silahlar.ElBombası:
                seciliSilah = new ElBombasi();
                break;

            case Silahlar.FlashBombası:
                seciliSilah = new FlashBombasi();
                break;

            default:
                break;
            }
            panelSilah.Controls.Clear();
            panelSilah.Controls.Add(seciliSilah.SilahResmi); // Olusturdugumuz panel e enumdan gelen nesnenin resmini ekliyoruz.
            seciliSilah.SilahResmi.Dock = DockStyle.Fill;    //Container icine bir nesne ekledigimizde fill oldugu icin bulundugu yeri kaplayacak.

            SilahBilgisiGoster(seciliSilah);

            gb_AtesliSilah.Visible = seciliSilah is IAtesEdebilen;   //Buradan true gelmesi halinde gbAteslisilah gözükecek
            gBYakinSaldiri.Visible = seciliSilah is IVurulabilir;    //Buradan true gelmesi halinde gbYakinSaldiri gözükecek
            gbFirlatilan.Visible   = seciliSilah is IFirlatilabilen; //Buradan true gelmesi halinde gbFirlatilan gözükecek
        }
示例#2
0
        private void cmbSilahlar_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbSilahlar.SelectedIndex < 0)
            {
                return;
            }

            Silahlar silah = (Silahlar)Enum.Parse(typeof(Silahlar), cmbSilahlar.SelectedItem.ToString());

            //silah.ToString(); //string silah adını verir

            //Silahlar silahb = (Silahlar)cmbSilahlar.SelectedIndex;
            //byte deger = (byte)silah; // Enum ın integer değerini verir

            switch (silah)
            {
            case Silahlar.Bıçak:
                seciliSilah = new Bicak();
                break;

            case Silahlar.USP:
                seciliSilah = new USP();
                break;

            case Silahlar.Glock:
                seciliSilah = new Glock();
                break;

            case Silahlar.DesertEagle:
                seciliSilah = new DesertDeagle();
                break;

            case Silahlar.AK47:
                seciliSilah = new AK47();
                break;

            case Silahlar.M4A1S:
                seciliSilah = new M4A1S();
                break;

            case Silahlar.AWP:
                seciliSilah = new AWP();
                break;

            case Silahlar.ElBombası:
                seciliSilah = new ElBombasi();
                break;

            case Silahlar.FlashBombası:
                seciliSilah = new FlashBombasi();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            panelSilah.Controls.Clear();
            panelSilah.Controls.Add(seciliSilah.SilahResmi);
            seciliSilah.SilahResmi.Dock = DockStyle.Fill;

            SilahBilgisiGöster(seciliSilah);

            gbAtesliSilah.Visible  = seciliSilah is IAtesEdebilen;
            gbYakinSaldiri.Visible = seciliSilah is IVurulabilir;
            gbFirlatilan.Visible   = seciliSilah is IFirlatilabilen;
        }