Alıştırma - Örtük veri dönüştürme ile ekleme gerçekleştirme
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 + 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.
C# kod düzenleyicisi doğrudan tarayıcıda kullanılabilir: C# Kod Düzenleyicisi. Bu düzenleyici, yerel bilgisayarınıza herhangi bir yazılım yüklemeye gerek kalmadan C# kodu yazmak, çalıştırmak ve test etmek için basit bir ortam sağlar.
C# Kod Düzenleyicisi'ni yeni bir tarayıcı penceresinde veya sekmesinde açın.
C# Kod Düzenleyicisi'nde çalışırken bu yönergelere başvurabilmek için tarayıcı pencerelerini yan yana konumlandırabilirsiniz.
C# Kod Düzenleyicisi'ne aşağıdaki kodu girin:
int firstNumber = 12; int secondNumber = 7; Console.WriteLine(firstNumber + secondNumber);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?
Daha önce yazdığınız tüm kodu kaldırın.
C# Kod Düzenleyicisi'ne aşağıdaki kodu girin:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");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
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.");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
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.");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, açma ve kapatma ayraçları, tıpkı matematiksel formülde kullanabileceğiniz gibi işlem sırası işlecini oluşturur. İlk olarak en içteki parantezlerin çözümlenip değerlerin int ve değerinin widgetsSold7eklenmesini 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 bir işleci aşırı yükleme adı verilir ve derleyici üzerinde çalıştırdığı veri türlerine göre uygun kullanımı çıkarsar. - 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
inttürünüstringtü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.