C # 6'da yeni bir özellik vardır: enterpolasyonlu dizeler.
Bunlar, ifadeleri dizinlere güvenmek yerine doğrudan koda koymanıza izin verir:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());
Oluyor:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";
Bununla birlikte, aşağıdaki gibi harfi harfine dizeleri (çoğunlukla SQL ifadeleri) kullanan birden çok satırda çok sayıda dizgimiz var:
string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());
Bunları normal dizelere döndürmek karmaşık görünüyor:
string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();
Hem harfi harfine hem de enterpolasyonlu dizeleri birlikte nasıl kullanırım?
3
Gerçekten SQL dizeleriyle ilgiliyse, bunun yerine parametreleştirilmiş sorgular kullanmamanızın herhangi bir nedeni var mı?
—
svick
"Aynı dizeleri (çoğunlukla SQL deyimleri) kullanan birden çok satırda çok sayıda dizgimiz var" kulağa, SQL enjeksiyon saldırılarına olanak tanıyan çok sayıda SQL dizesi varmış gibi geliyor.
—
Çetin Başöz
@svick biz, kullanıcı girdisi her şey parametreleştirilmiştir. Koddaki varlıklarımız için dinamik olarak SQL oluşturduğumuzdan, yine de yoğun bir şekilde dinamik SQL kullanıyoruz.
—
Keith
@CetinBasoz biz yapmayız - tüm kullanıcı girdileri parametreleştirilmiştir. Dinamik SQL'iniz olduğu pek çok durum vardır - örneğin LINQ veya diğer herhangi bir nesne eşleme çerçevesi.
—
Keith