Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

Miras Alma - C Sharp Inheritance

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OOP_inheritance
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            //Form üzerine sürükle bırak ile eklenen komponentlerin ilk değerlerini güncelleme
            InitializeComponent();
        }

        private **** Form1_Load(object sender, EventArgs e)
        {
            //program penceresi açılırken radio butonlarından biri seçili olsun

            rdbEgitmen.Checked = true;
        }

        private **** btnImzala_Click(object sender, EventArgs e)
        {
            //Calisanlar sınıfından bir nesne  oluşturalım

            Calisanlar calisan;
            
            //Radio butonlarından hangisi seçili ise o değere göre calisan nesnesinin bir 
            //örneğini oluşturalım

            if (rdbEgitmen.Checked)
            {
                calisan = new Egitmenler();
            }
            else
            {
                calisan = new Muhasebeciler();
            }

            //calisan nesnesini özelliklerini formda girilen değelere göre güncelleyelim

            calisan.Ad = txtAd.Text;
            calisan.Soyad = txySoyad.Text;
            calisan.Maas = nudMaas.Value;

            //calisan nesnesini formdaki listbox listesine ekleyelim.

            lstCalisanlar.Items.Add(calisan);
            
            //ekleme işleminden sonra tüm textbox ları temizleyelim

            TextleriTemizle();
        }

        private **** TextleriTemizle()
        {
            foreach (Control item in groupBox1.Controls)
            {
                if (item is TextBox)
                {
                    (item as TextBox).Clear();
                }
            }
        }

        private **** lstCalisanlar_DoubleClick(object sender, EventArgs e)
        {
            //formdaki listbox üzerindeki herhangi bir satır çif tıklandığında bu metot
            //çalışacak ve seçilen sıradaki calisan ile ilgili bilgileri messagebox ile gösterelim

            //Eğer listboxdan seçil eleman indeksi -1 olarak dönerse hiç bir işlem 
            //yapmadan metodu sonlandır.

            if (lstCalisanlar.SelectedIndex < 0)
            {
                return;
            }

            string seciliElemanTipi;

            Calisanlar calisan = lstCalisanlar.SelectedItem as Calisanlar;

            if (calisan == null)
            {
                MessageBox.Show("Herhangi bir çalışan seçmemişsiniz...");
            }
            else
            {
                seciliElemanTipi = calisan.GetType().Name;
                decimal maas = calisan.Maas;
                decimal maasArtis = calisan.Artis;
                string mesaj = string.Format("{0} tipinden bir eleman seçmişsiniz." + 
                  " Maaşı {1} TL ve yıllık artış oranı {2} dir ", seciliElemanTipi, maas, maasArtis);

                MessageBox.Show(mesaj);
            }
        }

        private **** contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            Calisanlar calisan = lstCalisanlar.SelectedItem as Calisanlar;

            if (calisan == null)
            {
                e.Cancel = true;
            }

            if (calisan is Egitmenler)
            {
                contextMenuStrip1.Items[1].Enabled = false;
            }
            else
            {
                contextMenuStrip1.Items[1].Enabled = true;
            }

            if (calisan is Muhasebeciler)
            {
                contextMenuStrip1.Items[0].Enabled = false;
            }
            else
            {
                contextMenuStrip1.Items[0].Enabled = true;
            }
        }

        private **** neAnlatacaksınToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Egitmenler calisan = lstCalisanlar.SelectedItem as Egitmenler;

            MessageBox.Show(calisan.BugunHangiKonuyuAnlatcaksin());
        }

        private **** paraSayımHızıToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Muhasebeciler calisan = lstCalisanlar.SelectedItem as Muhasebeciler;

            MessageBox.Show(calisan.SaniyedeKacKagitSayabilirsin.ToString());
        }

        private **** lstCalisanlar_MouseClick(object sender, MouseEventArgs e)
        {
            //Listbox üzeirnde seçili olan elemanın üzerine sağ tıklandığında context menü 
            //açalım ve yaptığın işin özelliklerini messagebox ile gösterelim.

            if (e.Button == MouseButtons.Right)
            {
                contextMenuStrip1.Show();
            }
        }
    }
}


////////////////////////////////////////////////////////////////////////////
//Calisanlar sınıfı
////////////////////////////////////////////////////////////////////////////



    class Calisanlar
    {
        public string Ad 
        {
            get;
            set;
        }

        public string Soyad
        {
            get;
            set;
        }

        public decimal Maas
        {
            get;
            set;
        }

        protected decimal artis;

        public decimal Artis
        {
            get { return artis; }
            //set { artis = value; }
        }

        public override string ToString()
        {
            return this.Ad + " " + this.Soyad;
        }

    }


////////////////////////////////////////////////////////////////////////////
//Egitmenler sınıfı
////////////////////////////////////////////////////////////////////////////


    class Egitmenler : Calisanlar
    {
        public Egitmenler()
        {
            this.artis = 0.1M;
        }

        //Egitmeler sınıfına public olarak bir metot ekleyelim

        public string BugunHangiKonuyuAnlatcaksin()
        {
            return "OOP anlatmayi planliyorum!!!";
        }
    }



////////////////////////////////////////////////////////////////////////////
//Muhasebeciler sınıfı
////////////////////////////////////////////////////////////////////////////


    class Muhasebeciler : Calisanlar
    {
        public Muhasebeciler()
        {
            this.artis = 0.05M;

            saniyedeKaçKagit = new Random().Next(2, 10);
        }

        // Mehasebeciler sınfına bir alan (field) ekleyelim

        int saniyedeKaçKagit;
       
        //Muhasebeciler sınıfına public bir özellik ekleyelim.

        public int SaniyedeKacKagitSayabilirsin
        {
            get { return saniyedeKaçKagit; }
        }
    }
 
Üst Alt