Alıştırma - Örtük veri dönüştürme ile ekleme gerçekleştirme

Tamamlandı

Genellikle, sayısal veriler üzerinde matematiksel işlemler yapmak istersiniz. C# derleyicisinin kodunuzu nasıl ayrıştırdığı ve yorumladığı hakkında bilgi edinmeniz gereken önemli bir ders olduğundan, bu ünitede eklemeyle başlayacak ve sonraki ünitede diğer işlemlere genişleteceksiniz.

İki sayısal değeri toplayın

birlikte iki sayı eklemek için, artı simgesi +olan toplama işlecini kullanacaksınız. Evet, dize birleştirmek için kullandığınız + sembolü toplama işlemi için de kullanılır. Bir sembolün birden çok amaç için yeniden kullanılmasına “işleci aşırı yükleme” denir ve bu durumla C# dilinde sık karşılaşılır.

Bu örnekte C# derleyicisi ne yapmaya çalıştığınızı anlar. Derleyici kodunuzu ayrıştırır ve + (işleç) simgesinin yanında iki sayısal değer (işlenenler) görür. Sağlanan değişken veri türlerini (her ikisi de int) ele aldığımızda, bu iki değeri eklediğiniz anlaşılıyor.

  1. .NET Düzenleyicisi'ne aşağıdaki kodu girin:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  2. Kodu çalıştırdığınızda çıkış konsolunda aşağıdaki sonucu görürsünüz:

    19
    

Örtük tür dönüştürmeleri zorlamak için veri türlerini karıştırın

Simgeyi + hem hem de stringint değerleriyle kullanmaya çalışırsanız ne olur?

  1. Yazdığınız kodu aşağıdaki kodla eşleşecek şekilde değiştirin:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  2. Kodu çalıştırdığınızda çıkış konsolunda aşağıdaki sonucu görürsünüz:

    Bob sold 7 widgets.
    

Bu durumda, C# derleyicisi iki işleneni birleştirmek için sembolünü + kullanmak istediğinizi anlar. + sembolünün iki yanındaki işlenenlerin string ve int veri türlerinde olmasından bu sonuca varır. Bu nedenle dizenin geri kalanıyla birleştirmek için int türündeki widgetsSold değişkenini geçici bir süre örtük olarak string türüne dönüştürür. C# derleyicisi elinden geldiğince size yardımcı olmaya çalışır ama ideal olan amacınızı açıkça belirtmenizdir.

Sayı toplama ve dize birleştirme işlemlerinin daha gelişmiş bir örneği deneyin

  1. Yazdığınız kodu aşağıdaki kodla eşleşecek şekilde değiştirin:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. Kodu çalıştırdığınızda çıkış konsolunda aşağıdaki sonucu görürsünüz:

    Bob sold 77 widgets.
    

int türündeki widgetsSold değişkenini int7 sabitiyle toplamak yerine derleyici hepsini bir dize olarak değerlendirir ve bunları birleştirir.

Derleyiciye niyetinizi netleştirmek için parantezler ekleyin

  1. Yazdığınız kodu aşağıdaki kodla eşleşecek şekilde değiştirin:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. Kodu çalıştırdığınızda çıkış konsolunda aşağıdaki sonucu görürsünüz:

    Bob sold 14 widgets.
    

Parantez sembolü () de aşırı yüklenmiş bir diğer işleç haline gelir. Bu durumda matematik formüllerinde kullanıldığı gibi açma ve kapatma parantezi işlem sırası işlecini oluşturur. İlk olarak en içteki parantezlerin çözümlenip değerlerin widgetsSold ve değerinin int7eklenmesini istediğinizi belirtirsiniz. Bu hesaplandıktan sonra düzenleyici iletinin geri kalanıyla birleştirebilmek için sonucu örtük olarak bir dizeye dönüştürür.

Not

Tek bir kod satırında hem hesaplama hem de birleştirme işlemi yapmaktan kaçınmalısınız. Burada amaç, işleç ve işlenenleri derleyicinin nasıl algıladığını anlamanıza yardımcı olmaktır.

Özet

C# dilindeki matematiksel işlemler hakkında şu ana kadar öğrendiklerini aşağıda bulabilirsiniz:

  • Sayılar üzerinde toplama gibi matematik işlemleri gerçekleştirebilirsiniz.
  • Hem dize birleştirme hem de toplama işlemleri artı + sembolünü kullanır. Buna işleci aşırı yükleme denir ve derleyicisi üzerinde işlem yaptığı veri türlerini yorumlayarak uygun kullanımı algılar.
  • Geliştiricinin gösterim amacıyla bir sayının dize gösterimini birleştirmeye çalıştığı açıkça anlaşılıyorsa, C# derleyicisi int türünü string türüne örtük olarak dönüştürmeye çalışır.
  • Derleyiciye belirli işlemleri diğer işlemlerden önce gerçekleştirmek istediğinizi açıkça söylemek üzere bir işlem sırası tanımlamak için parantezleri kullanın.