C# tek ";" Kullanarak 4 İşlem Hesap Makinesi Yapımı | "?" Nedir?

AhmetKnKc

Uzman üye
15 Mar 2018
1,083
9
19
Evden
Selam dostlar.
Sizlere C# Form uygulamasında nasıl tek ; kullanarak 4 işlem hesap makinesi yapıldığını göstermek istiyorum. Elbette programın arkasında yüzlerce ; kullanılaraktan oluşturulan sınıflar, çağırılan kütüphaneler vs. var, amacım Visual Studio kullanarak hazır gelen sınıflar ve kütüphaneler üzerinde sadece tek ";" kullanaraktan 4 işlem hesap makinesi yapmak, daha fazla uzatmadan başlayalım.

Öncelikle "?" işaretinin ne anlama geldiğinden bahsedelim. C# da ? işareti atama sırasında koşul kullanmaya yarıyor, hemen ufak bir örnek göstereyim.


riUWeWw.png

Yukarıda kodun çıktısı ise "Koşul Doğru" olacaktır.


6PrlI6E.png

Burada ise konsola "Eşit Değil" yazacaktır.


Biraz daha işlevsel bir örnek göstereyim, şimdi ufak bir proje yapalım, konsol uygulamasında girilen iki sayının toplamının 50'den küçük olup olmadığını gösteren program.
Normalde bunu if else ile aşağıdaki gibi kontrol edersiniz değil mi?
DninIXy.png


Buna hiç gerek yok, aşağıdaki şekilde de yapabilirsiniz. Sonuç aynı olacaktır.
IZh38E1.png

MNNVaDF.png



Evet kabaca cSharp'da "?" ne anlama geldiğinden bahsettim, aklınıza takılan bir şey varsa yorumlarda sorabilirsiniz.


Şimdi gelelim asıl projemize, "?" kullanaraktan sadece tek ";" yazarak 4 işlem hesap makinesi yapımı. İlk olaraktan kabaca bir form ekranı oluşturdum.
3yWJP2e.png



Şimdi kod kısmına geçiyorum, burası biraz karışık ve dağınık olacağından maalesef anlatamayacağım, merak ettiğiniz bir yer varsa sorabilirsiniz. İlk olarak eklenen TextBox'a çift tıklayıp TextChanged Eventini açıyoruz, daha sonrası ise aşağıda yazdığım gibi;
NEgC2Fy.png

sXVDqDH.png




Not: bu projeyi okulda derste sıkıldığımdan dolayı ufak bir challange gibi kendimce yaptım, sadece bunu paylaşmak istedim fazla detaylı anlatamadığım için kusura bakmayın aklınıza takılan bir şey varsa sorabilirsiniz.



Projede kullandığım kodlar;

Console (2.)​
C#:
static void Main(string[] args)
{
    Console.Write("1. Sayı: "); int Num1 = int.Parse(Console.ReadLine());
    Console.Write("2. Sayı: "); int Num2 = int.Parse(Console.ReadLine());

    int toplam = Num1 + Num2;
    string startText = "İki sayının toplamı 50'den";

    Console.WriteLine();
    Console.WriteLine(toplam < 50 ? $"{startText} küçük. \nToplamı: {toplam}" : $"{startText} büyük veya eşit.\nToplamı: {toplam}");
    Console.ReadLine();

    Console.ReadKey();
}


Form​
C#:
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                label1.Text =
                    textBox1.Text.Contains("+") ?
                        (Convert.ToInt64(textBox1.Text.Split('+')[0]) + Convert.ToInt64(textBox1.Text.Split('+')[1])).ToString() :
                    textBox1.Text.Contains("-") ?
                        (Convert.ToInt64(textBox1.Text.Split('-')[0]) - Convert.ToInt64(textBox1.Text.Split('-')[1])).ToString() :
                    textBox1.Text.Contains("*") ?
                        (Convert.ToInt64(textBox1.Text.Split('*')[0]) * Convert.ToInt64(textBox1.Text.Split('*')[1])).ToString() :
                    textBox1.Text.Contains("/") ?
                        (Convert.ToInt64(textBox1.Text.Split('/')[0]) / Convert.ToInt64(textBox1.Text.Split('/')[1])).ToString() :

                    int.TryParse(textBox1.Text, out int a) ? textBox1.Text : "0";
            }
            catch { }
        }
 

green.php

Katılımcı Üye
27 Haz 2021
732
874
Eline sağlık, kafan iyi çalışıyor.
Düşünce şeklini sevdim.
Bir insanın mantıksal kapasitesini yazdığı koddan anlamak mümkün.
Önemli olan ne yazdığın değil nasıl şekilde yazdığındır.
 

AhmetKnKc

Uzman üye
15 Mar 2018
1,083
9
19
Evden
Eline sağlık, kafan iyi çalışıyor.
Düşünce şeklini sevdim.
Bir insanın mantıksal kapasitesini yazdığı koddan anlamak mümkün.
Önemli olan ne yazdığın değil nasıl şekilde yazdığındır.
Teşekkürler, beğenmenize sevindim. Bir süredir forumda aktif değildim arada sırada bu tarz ufak detayları içeren konular paylaşmayı düşünüyorum.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.