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;
}
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;
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.