class OSS
{
    public void Turkce1()
    {
        MessageBox.Show("Türkçe-1 çözüldü");
    }

    public void Sosyal1()
    {
        MessageBox.Show("Sosyal-1 çözüldü");
    }

    public void Mat1()
    {
        MessageBox.Show("Mat-1 çözüldü");
    }

    public void Fen1()
   
{
        MessageBox.Show("Fen-1 çözüldü");

    }

    public void Mat2()
    {
        MessageBox.Show("Mat-2 çözüldü");
    }

    public void Fen2()
    {

       MessageBox.Show("Fen-2 çözüldü");
    }

    public delegate void OSScoz();// delegeyi kullanmak için imza oluşturuldu.

    public OSScoz cozum; // delegeyi cozum ile kullanacağız.

}

Burada yaptığımız şey, çzöüm basamaklarını oluşturmak oldu. Şimdi bunları, nasıl kullanacağız ona bakalım. Formumuza 3 adet buton ekleyelim. Ve aşağıdaki kodları yazalım.


OSS yeni = new OSS();

private void button1_Click(object sender, EventArgs e) // sayısal-1 alanında çözüm yapan buton
{

    yeni.cozum = yeni.Turkce1; // başlandıç olarak türkçe-1 den başlıyoruz

    yeni.cozum += yeni.Sosyal1;

    yeni.cozum += yeni.Mat1;

    yeni.cozum += yeni.Fen1;

     // Sınava sayısal-1 den girenler için çözülmesi gerekn bölümler eklendi.

     yeni.cozum(); //çözüme başlandı      
}

private void button2_Click(object sender, EventArgs e) // sayısal-2 alanında çözüm yapan buton.
{

     yeni.cozum += yeni.Mat2;

     yeni.cozum += yeni.Fen2;

      // sınava sayısal-2 den girenler için çözüm basamaklarına Mat-2 ve Fen-2 eklendi.

     yeni.cozum();
}

private void button3_Click(object sender, EventArgs e) // eşitağırlık-2 alanında çözüm yapan buton.
{
    yeni.cozum -= yeni.Fen2;

    yeni.cozum += yeni.edSos;

    // sınava Eşit Ağırlık-2 den girenler için Fen-2 çıkarıldı ve Edebiyat-sosyal eklendi.

    yeni.cozum();
}

Şimdi projeyi çalıştırdığınızda butonlara sırası ile tıklamanız gerekmektedir. Bunun sebebi “yeni” nesnesini global alanda oluşturduk. Zaten sayısal-2 çözümü için sadece mat-2 ve fen-2 eklememizin sebebi de bu. Çünkü daha önce sayısal-1’i çözmüştük. Ama siz butonların birbirinden bağımsız olmasını istiyorsanız, yani butonlara sırayla değil de istediğiniz gibi tıklamak istiyorsanız, “yeni” nesnesini tek tek butonların içinde oluşturmalısınız. O zaman sayısal-1 kodu aynı kalacak ama sayısal iki için sayısal-1’deki basamakları en baştan yazmanız gerekecektir.

C# , ,
Yorumlar ( 0 )
Bu girişin beslemesi Geri izleme Yorum yap
  1. Henüz yorum yok
Yorumunuz gönderiliyor. Lütfen bekleyiniz.

Yorum yap

Trackbacks & Pingbacks ( 0 )
Listeyi bağlayın
  1. Henüz geri izleme yok
Anasayfa > C# > C# Delegeler

C# Delegeler

Delegeler projelerimizde çok kullanmadığımız bir yapı ama yine de bazı durumlarda gerekli olabiliyor. Mesela bir projede, iki farklı işlemin ortak basamakları varsa orada delegeleri kullanabiliriz. Delegeler için ilk olarak işlem basamaklarının bulunduğu bir sınıf hazırlarız. Bir nevi işlem basamaklarının bulunduğu bir liste gibi olur. Daha sonra bu işlemler kullanılır. Örnek olarak ÖSS sorularının çözülmesini düşünebilirsiniz. Mesela ben ÖSS denemesi çözerken, ilk olarak Mat-1, Fen-1, Mat-2, Fen-2, Türkçe-1, Sosyal-1 sıralamasını takip ederdim. Ama başkaları farklı sırlama takip edebilir. Ya da sınava birinci bölümden giriyor ise Mat-2 ve Fen-2’yi çözmeyebilir. İsterseniz Örneğimize başlayalım.

Yazan: Yakup Buğra Bozkurt

        Örneğimizde Öss’de yapılan üç farklı çözümü ele alacağız. Bunlar, Sınava sayısal-1 alanında girenler için, sayısal-2 alanında girenler için ve eşit ağırlık-2 alanında girenler için çözümler olacak. İlk olarak bir form application açalım. Project>add new item sekmelerinden bir adet class ekleyelim. Ve kodları aşağıdaki gibi düzenleyelim.