.NET 7'de yeni [1]: C# 11.0'da ham gerçek dizeler

Womanne

Member
C#dilinin yeni bir versiyonu .NET 7.0'ı da içerir. C# 11.0'da ayaklanmalara sahip grevler için yeni bir sözdizimi biçimi vardır. Ham bir gerçek dizede, dize üç veya daha fazla alıntı ile başlar, örneğin """ Ve aynı sayıda alıntı ile biter.










Holger Schwichtenberg, 53 ünlü uzmanla tavsiye ve eğitim yoluyla ve yazılımın geliştirilmesinde çok sayıda orta ve büyük şirketi destekleyen uzmanlar ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası uzman konferansındaki görünümleri, 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makalesi sayesinde Holger Schwichtenberg, Almanya'daki .NET ve Web teknikleri için en iyi uzmanlardan biridir.







Bu yeni dilsel özelliğin motivasyonu, kontrol işaretlerinin gerekli olmadığı (kaçış dizileri), ancak yine de aydınlatılabileceği ve enterpolasyonun desteklediği karakterin zincirinin bir temsilini oluşturmaktı.



Kaba gerçek dizelerde geçerlidir:

  • Ombring halatı.
  • Kontrol belirtisi yok.
  • İçerme korunur, ancak her satırda son satırda son satırda geri dönüş olduğu kadar çok tanıtım vardır.
  • Enterpolasyon ifadeleri, alıntıların önünde iki veya daha fazla dolar belirtisi ile mümkündür. Sonra enterpolasyon ekspresyonu için karakter zincirinde çok sevimli parantez vardır.
Ham gerçek bir dizeye sahip ilk örnek (burada geri dönmeden ve enterpolasyon olmadan) aşağıdaki kod parçası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
"""";



Önceki sözdizimi “normal dize” ( n) ve “kelimesi kelimesine ip” ( @Ancak, 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
";



Visual Studio 2022, üç karakter zincirinin formları arasında dönüştürülecek sürümün altında 17.2 yeniden düzenleme işlevi sundu:








Visual Studio 2022'de Sürüm 17.2'den şaşırtıcı zincirler için yeniden düzenleme



Aşağıdaki örnekler, dönüş ve enterpolasyon ile ham gerçek ipleri göstermektedir:



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 Literal dizelerinin kullanımı için pratik örnek


Aşağıdaki kod, geri dönüş ve enterpolasyon ile bir JSON işaret zincirinin inşası için ham bir ipi göstermektedir:



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üleyicisi, getirinin boşluklarla tutulduğunu gösterir:








Hata ayıklayıcı görüntüleyicisinde gerçek kaba dize



Konsoldaki çıktı bu nedenle şuna benziyor:








Konsolda gerçek kaba dizenin baskısı



Ham gerçek dizelerde geri dönüş hakkında not


Kelimenin tam anlamıyla çiğin geri dönüşleri tabülatörler ve boşluklarla karıştırılabilir:









Bununla birlikte, hattın soluna geri dönüş tüm hatlarda düzgün olmalıdır. Aşağıdaki şekilde, bir kart 51 satırında iki kez kullanıldığı için, diğer tüm satırlarda sadece bir kez kullanıldığından, aşağıdaki şekilde gösterilmez bir dönüş göstermektedir. Bu nedenle Visual Studio, koda dönüşü dize dönüşünden ayıran satırı göstermez:








Beyaz boşluklar tek tip olmalıdır, böylece ham gerçek ipler doğru bir şekilde yerleştirilir.




(RME)
 
Üst