2016-06-23 52 views
9

Bu kodu göz önünde bulundurun:Dize enterpolasyonu ve string.format'tan hangisi performans açısından daha iyidir?

var url = "www.example.com"; 

String.Format:

var targetUrl = string.Format("URL: {0}", url); 

Dize İnterpolasyon:

var targetUrl=$"URL: {url}"; 

dize enterpolasyon gelen bir ve string.Format performansında iyidir ?

Ayrıca bunların kullanımı için en uygun uyum senaryoları nelerdir?

+0

Yukarıdaki çizgiler yavaş olduğunda, durumla yüzleşiyor musunuz? – Dennis

+0

Dize enterpolasyonunu kodumdaki string.format'tan biraz daha yavaş buldum [http://www.dotnetperls.com/string-interpolation]. –

+0

Bağlantılı gönderi, "string.Format" ve dize enterpolasyonu (true olan) için hemen hemen aynı sonuçları gösterir. Bu, erken optimizasyon sorununa benziyor. – Dennis

cevap

12

Dize enterpolasyonu ve string.format'tan hangisi performans açısından daha iyidir?

Hiçbiri çalışma zamanında eşit olduklarından daha iyi değildir. Dize enterpolasyonu derleyici tarafından string.Format'a yeniden yazılmıştır, bu nedenle her iki deyim de tam olarak çalışma zamanında aynıdır.

Ayrıca bunların kullanımı için en uygun senaryolar nelerdir?

Kullanım dize enterpolasyon size dize biçimlendirme kullanmak istediğiniz kapsamında değişkenleri varsa. Dize enterpolasyonu daha güvenlidir, çünkü dizininizin geçerliliğini derleme zamanı kontrolleri vardır. Metni bir kaynak dosya veya veritabanı gibi bir dış kaynaktan yüklerseniz, string.Format'u kullanın.