.NET 7’deki yenilikler [1]: C# 11.0’da ham dize sabit değerleri

Adanali

Member
.NET 7.0 ayrıca C# dilinin yeni bir sürümünü içerir. C# 11.0, bozuk dizeler için yeni bir sözdizimi biçimine sahiptir. Bir ham dizgi hazır bilgisinde, karakter dizgisi üç veya daha fazla tırnak işaretiyle başlar, örn. """ ve aynı sayıda tırnak ile biter.







Dr Holger Schwichtenberg, güvenlikle ilgili son derece kritik alanlarda bile yenilik ve deneyim odaklı yazılım geliştirme sunan MAXIMAGO’da Baş Teknoloji Uzmanıdır. Aynı zamanda, çok sayıda orta ölçekli ve büyük şirketi yazılım geliştirme ve işletim konusunda 38 tanınmış uzmanla danışmanlık ve eğitimle destekleyen uzman ağı www.IT-Visions.de’nin başkanıdır.







Bu yeni dil özelliğinin motivasyonu, hiçbir kontrol karakterine (kaçış dizileri) ihtiyaç duyulmayan, ancak kesmelerin kolayca eşlenebildiği ve enterpolasyonu destekleyen bir karakter dizisi temsili yaratmaktı.


Ham dize değişmezlerinde:

  • Kesmeler karakter dizisinde biter.
  • Kontrol karakteri yok.
  • Girinti korunur, ancak her satır, bitişten önceki son satırdaki girinti sayısı kadar girintiyi kaldırır.
  • Tırnak işaretlerinden önce iki veya daha fazla dolar işareti bulunan enterpolasyon ifadeleri mümkündür. Daha sonra enterpolasyon ifadesi için karakter dizisinde aynı sayıda parantez kullanılmalıdır.
Ham bir dizge hazır bilgisine (burada girintisiz ve enterpolasyonsuz) sahip en iyi örnek, aşağıdaki kod parçacığını gösterir:


// Raw Literal String: 3 oder mehr Anfuehrungszeichen zu Beginn
var rawLiteralString = """"
.NET 7.0
ist am 8. November 2022 erschienen
mit Support fuer 18 Monate
"""";



Yukarıdaki sözdizimi “Normal Dize” oluşturur ( n) ve “Verbatim String” (ile başlayan @) ancak yine de izin verilir:


var regularString = "n.NET 7.0nist am 8. November 2022 " +
+ "erschienenn mit Support fuer 18 Monate.n";

var verbatimString = @"
.NET 7.0
ist am 8. November 2022 erschienen
mit Support fuer 18 Monate
";



17.2 alt sürümünden itibaren, Visual Studio 2022 artık üç karakter dizisi biçimi arasında dönüştürme yapmak için yeniden düzenleme işlevleri sunmaktadır:







17.2 sürümünden itibaren Visual Studio 2022’de dize yeniden düzenleme



Aşağıdaki örnekler, girintili ve enterpolasyonlu ham dize sabit değerlerini gösterir:


var name = "Dr. Holger Schwichtenberg";
var website = "www.dotnet-doktor.de";

var nameUndWebsite1 = $$"""
Name: {{{name}}} Website: {{{website}}}
""";
Console.WriteLine(nameUndWebsite1);
// Name: {Dr. Holger Schwichtenberg} Website: {www.dotnet-doktor.de}


var nameUndWebsite2 = $$$"""
Name: {{{name}}} Website: {{{website}}}
""";
Console.WriteLine(nameUndWebsite2);
// Name: Dr. Holger Schwichtenberg Website: www.dotnet-doktor.de


Ham dize değişmezlerini kullanmak için pratik örnek


Aşağıdaki kod, girintili ve enterpolasyonlu bir JSON dizesi oluşturmak için ham bir dize hazır bilgisini gösterir:


var name = "Dr. Holger Schwichtenberg";
var website = "www.dotnet-doktor.de";

var json = $$"""
{
"Person": {
"Name": "{{name}}",
"Webseite": "{{website.ToLower()}}"
}
}
""";



Hata Ayıklayıcı Görüntüleyici, girintilerin boşluklarla korunduğunu gösterir:







Hata ayıklayıcı görüntüleyicide ham dize sabit değeri



Konsolun çıktısı şuna benzer:







Konsola ham değişmez dize çıktısı



Ham dize sabit değerlerinde girintiye ilişkin not


Ham değişmez değeri girintilemek, sekmeler ve boşlukların birleşiminden oluşabilir:








Ancak, satırın solundaki girinti tüm satırlarda tutarlı olmalıdır. Aşağıdaki görüntü geçersiz girintiyi gösteriyor çünkü 51. satır iki kez bir sekme durağı kullanıyor ve diğer tüm satırlar yalnızca bir sekme durağı kullanıyor. Bu nedenle Visual Studio, koddaki girintiyi dizedeki girintiden ayıran satırı görüntülemez:







Ham dize sabit değerlerinin uygun şekilde girintilenmesi için boşluk tutarlı olmalıdır.




(rm)



Haberin Sonu
 
Üst