.NET 9.0'da yeni [29]: Normal ifadeler için menşe jeneratörünün iyileştirilmesi

Womanne

Member
Microsoft, C# 13.0'dan .NET 9.0'a yeni “kısmi özellik” dil işlevselliğini kullanır ve jeneratörü iki yıl önce normal ifadeler için tanıtmanıza olanak tanır. Bunu .NET 7.0 blog serisimde bildirdim. .NET 9.0'da yeni, geliştiricilerin ve geliştiricilerin ek açıklama [GeneratedRegex] Artık sadece sadece yöntemler için değil, aynı zamanda tahmin etmek için de kullanılabilir.






Dotnet Doctor-Holger Schwichtenberg




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.








Kodun aşağıdaki örneği, adresin ve -Mail'in doğrulanması örneğini kullanarak prosedürü göstermektedir:



using System.Text.RegularExpressions;

namespace NET9_Console.FCL90;

public partial class Checker_Alt // Partielle Klasse
{
[GeneratedRegex(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*")] // ALT: Auf Methode
// Partielle Methode, die dann von SG implementiert wird
public partial Regex EMailRegEx();
}

public partial class Checker_Neu // Partielle Klasse
{
[GeneratedRegex(@"w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*")] // NEU: Auf Property
// Partielles Property mit Getter, der dann von SG implementiert wird
public partial Regex EMailRegEx { get; }
}

public class FCL9_RegExSourceGenerator
{
public void Run()
{
CUI.Demo(nameof(FCL9_RegExSourceGenerator));
// Aufruf der partiellen Methode
Console.WriteLine(new Checker_Alt().EMailRegEx().IsMatch("[email protected]"));
// Aufruf des partiellen Properties
Console.WriteLine(new Checker_Neu().EMailRegEx.IsMatch("[email protected]"));
}
}



Origin jeneratörü, geliştirme süresi boyunca derleme sırasında yöntemin içeriğini ve kısmi mülkün alıcısını oluşturur. Oluşturulan program kodu, klasörde regexgenerator.g.cs dosyasında mevcuttur C: user kullanıcı adı appatadata local temp vsgeneratedDododocuments Guid.


(RME)




Ne yazık ki, bu bağlantı artık geçerli değil.

Boşa harcanan eşyalara olan bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.


Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!
 
Üst