Metin biçimlendirme; sayı, tarih, saat veya nesne gibi farklı veri tiplerini insan tarafından okunabilir, standartlara uygun ve bağlama göre düzenlenmiş dizgeler (string) hâline getirme işlemidir.
Neden Gerekli?
- Okunabilirlik ve Sunum: Ham verilerin (örneğin
12.345678veya2026-10-15T20:34:00) kullanıcı arayüzlerinde anlaşılır, sade ve düzenli görünmesini sağlar. - Yerelleştirme (Localization / Globalization): Para birimi, ondalık ayırıcılar (virgül/nokta) ve tarih sıralamaları ülkeden ülkeye değişir. Biçimlendirme, verinin hedef kültüre (
CultureInfo) göre otomatik uyarlanmasını sağlar. - Veri Standardizasyonu: Dış sistemlere (API, veritabanı, dosya sistemleri) gönderilen veya loglanan verilerin belirli bir protokol ve şablona uymasını temin eder.
- Hizalama ve Düzen: Konsol çıktılarında, faturalarda veya tablolarda metinlerin sola, sağa yaslanarak sütunlar halinde muntazam dizilmesini sağlar.
- Bellek ve Performans: Düzensiz
+operatörü ile yapılan birleştirmeler bellekte gereksiz nesne kopyaları (immutable string yükü) oluşturur; modern biçimlendirme yöntemleri bellek yönetimini optimize eder.
Nerelerde Kullanılır?
| Kullanım Alanı | Açıklama | Tipik Örnek |
| Kullanıcı Arayüzleri (UI) | Web, masaüstü veya mobil formlarda son kullanıcıya gösterilen veriler | Para birimi gösterimi (₺1.250,50), yüzde oranları (%18) |
| Tarih ve Saat Gösterimleri | Zaman damgalarının kullanıcıya veya raporlama formatına uyarlanması | Gün/Ay/Yıl (dd.MM.yyyy) veya saat (HH:mm:ss) gösterimi |
| Loglama ve Hata Takibi | Sistem olaylarının, istisnaların (exception) ve parametrelerin kaydedilmesi | Yapılandırılmış log mesajları ([2026-10-15] User {id} logged in) |
| Raporlama ve Tablolama | Konsol ekranları, fiş/fatura ve metin tabanlı belgeler | Sabit sütun genişliklerine göre sağa/sola hizalanmış metinler |
| Metin Tabanlı Veri Üretimi | Kod içinden e-posta şablonları, SQL sorguları, JSON veya XML üretimi | Önceden tanımlı şablonların içine değişkenlerin dinamik yerleştirilmesi |
Bütün sabit bir metin içerisine değişken değeri gönderilmesini sağlar. Değişken değeri {..} içerindeki alana yerleştirilir.
string.Format("Hava sıcaklığı ortalaması gündüz {0} derece ve gece ise {1} derecedir.", 18, 2);Tarihsel Biçimlendirme
string.Format("{0:dd MMMM yyyy dddd HH:mm:ss}", DateTime.Now)| Tarih | Kısaltması | Yazılışı | Output |
|---|---|---|---|
| Short Date | d | {0:d} | 5.2.2017 |
| Long Date | D | {0:D} | 5 Şubat 2017 Pazar |
| Full Date Time | f | {0:f} | 5 Şubat 2017 Pazar 16:30 |
| Default Date Time | g | {0:g} | 5.2.2017 16:30 |
| Month Day | M | {0:M} | 5 Pazar |
| GMT | U | {0:U} | 5 Şubat 2017 Pazar 16:30:45 |
| Day | dd | {0:dd} | 5 |
| Month | mm | {0:mm} | 2 |
| Year | yy | {0:yyyy} | 2017 |
| Hour (1-24) | HH | {0:HH} | 16 |
| Hour (1-12) | hh | {0:hh} | 04 |
| Date Separator | / | {0:dd/mm/yyy} | 5.2.2017 |
| Date Separator | : | {0:dd.M.yyyy HH:mm:ss} | 5.2.2017 16:30:45 |
Rakamsal Biçimlendirme
| İfade | Kısaltması | Yazılışı | Output |
|---|---|---|---|
| Currency Para Birimi | C | {0:C0}- {0:C1} – {0:C2} | 7₺ – 7.0₺ – 7.00₺ |
| Percent Yüzde | P | {0:P0} | 3 için %300 – 0.3 için – %30 |
ÖRNEK:
//Currency - Para birimi {0:C} En çok tercih edilen
string.Format("Cebimde {0:C2} var.",7);
//çıktısı : Cebimde 7.00₺ var.
//Percent - Yüzde {0:P}
string.Format("{0:P0} dilimlik bir kısım derslerine çalışmıyor.",0.35)
//çıktısı: %35 dilimlik bir kısım derslerine çalışmıyor.