Informacje o użytkowniku w mailto:
identyfikatorach URI są porównywane
Uri Wcześniej nie porównaliśmy informacji o użytkowniku podczas porównywania dwóch Uri
wystąpień pod kątem równości. Jednak to zachowanie nie jest intuicyjne w przypadku mailto:
identyfikatorów URI. Dzięki tej zmianie Uri.Equals operator uwzględnia teraz informacje o użytkowniku ==
podczas porównywania identyfikatorów URI.
Poprzednie zachowanie
Przed platformą .NET 8 oba poniższe porównania zwróciły true
wartość .
Uri uri1 = new Uri("https://user1@www.microsoft.com");
Uri uri2 = new Uri("https://user2@www.microsoft.com");
System.Console.WriteLine(uri1 == uri2); // True.
Uri uri3 = new Uri("mailto:user1@microsoft.com");
Uri uri4 = new Uri("mailto:user2@microsoft.com");
System.Console.WriteLine(uri3 == uri4); // True.
Nowe zachowanie
Począwszy od platformy .NET 8, pierwsze porównanie nadal zwraca true
wartość , ale drugie porównanie (identyfikatorów mailto
URI) zwraca wartość false
.
Uri uri1 = new Uri("https://user1@www.microsoft.com");
Uri uri2 = new Uri("https://user2@www.microsoft.com");
System.Console.WriteLine(uri1 == uri2); // True.
Uri uri3 = new Uri("mailto:user1@microsoft.com");
Uri uri4 = new Uri("mailto:user2@microsoft.com");
System.Console.WriteLine(uri3 == uri4); // False.
Wprowadzona wersja
.NET 8
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Poprzednie zachowanie było nieoczekiwane i niezamierzone.
Zalecana akcja
Jeśli chcesz porównać tylko część adresów e-mail hosta, porównaj tylko Uri.Host członków.