Son yazıma göz attım da , eğer gerçekten en başından itibaren yazıları okuyup buralara kadar geldiyseniz gerçekten kendinizi tebrik edebilirsiniz. Bunu daha ileride de söyleyeceğim… Şimdi konumuza dönelim.
string ifadelerin ne olduğu konusunda pekala bir deneyim elde ettik neydi hemen hatırlayalım, metinselll ifadelerdirr, aynen öyle yani metinlerdir =)
Metin ifadeleriyle ilgili format işlemi nedir önce onu tanımlayalım.
Arkadaşlar siz zaten metin birleştirme işlemini yaptınız Console.WriteLine() içerisinde + ifadesi ile birden fazla string ifadeyi yazdırma işlemini gördük bunu yapabilmenin tek yolu + ifadesini kullanmak değil!
string ifadeleri belki de en çok kullanacağımız noktalardan biri birleştirme işlemi.
Peki biz madem + ifadesini kullanmayacağız o zaman ne kullanacağız diye sorarsanız hemen şöyle örnek bir kod bırakarak kod üzerinde açıklama yapalım.
Gördüğünüz gibi 4. satırda + ifadesini kullanmadan iki adet string değişkenini formatlayarak başka bir ifadenin içerisinde kullandım, şimdi gelelim kullanış şekillerine.
4. Satırda string.Format() diyerek bir stringi formatlayacağımızı belirledik ve süslü parantezler içerisinde sayılar belirttik, ve bu sayılar rastgele sayılar değildir. Bu sayıların sebebi virgül ifadesinden 0 değeri virgül ifadesinden sonraki ilk ifadeyi(a) temsil etmektedir , 1 ifadesi ise virgül ifadesinden sonra gelen ikinci ifadeyi(b) temsil etmektedir. Yukarıdaki kodun çıktısı şöyledir;
Eğer ben 0 ve birin yerini değiştirirsem yani ;
Şu hale dönüştürürsem çıktımız şu şekilde olacaktır.
Gördüğünüz gibi a ve b string ifadelerinin yerleri aynı kalmasına rağmen string c stringinin içeriği değişti.
Fakat bunun daha kolay bir yolu var ve her seferinde 0 neyi temsil ediyordu yaa diye düşünmemize gerek kalmıyor
String interpolation
Zaten @ karakteri ile string interpolation yapmıştık fakat şimdi bir metin yazarken içerisinde başka ifadeler de yapabileceğimiz anlamına geliyor bu ne demek?
örneğin ben a değişkeninin içeriğini istediğim yerde a yazarak konumunu belirlesem nasıl olurdu? Mükemmel dediğinizi duyar gibiyim.
Bunu yapabilmek için eklememiz gereken bir işaret var $
Para her şeyin çözümü =)
Örneğin yukarıdaki uygulamanın çıktısı Resim 1 ile aynı olacaktır, inanmayanlar deneyebilir.
Eğer siz bir string ifadesinin başına $ ifadesini koyduysanız süslü parantezler içerisinde birkaç şey daha yapabilirsiniz, mesela …
Örneğin yukarıdaki kod içerisinde 4. satırda Öğrenmedik biliyorum fakat kısa bir giriş yapmama izin verin 1 2ye eşit mi diye sordum ve o da cevabını bana gösterdi.
yani $ işareti koyduğunuz takdirde geriye bir değer döndüren her şeyi yazabilirsiniz bir string ifadesine dönüştürülüp string ifadesinin içerisine atılacaktır.
Siz console üzerinde yazı yazdırdığınız esnada da interpolation yapabilirsiniz
Console.WriteLine() uygulaması zaten içerisine bir string alıyor ve onu yazdırıyor.
Yukarıdaki kodda örneğini görebilirsiniz, interpolation yapmak için başına $ işareti koymanız yeterli.
Burada c değişkenini kullanmaktan kurtulmuş olduk, ama ben tekrardan kullanacak olsam 6. satırı aynı şekilde tekrar yazmam gerekecekti.
string formatlama bu kadar değil fakat burada stringler ile nasıl çalışılır tamamen onun anlatımını yapmak istemiyorum, giriş seviyesinde ilerleyelim. Zaten hali hazırda bilmediğiniz ifadeleri kullanıyorum, bunun için özür dilerim örneğin string.Format bir fonksiyon ve biz fonksiyon nedir öğrenmedik. Şimdilik bazı şeyleri kabul edelim ileride hepsini ayrıntılayacağız.
Eğer siz string formatlamayı daha detaylı öğrenmek istiyorsanız microsoft’un orinal dökümantasyonuna bakabilirsiniz.