Udostępnij za pośrednictwem


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 truewartość .

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 truewartość , 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.

Jeśli chcesz porównać tylko część adresów e-mail hosta, porównaj tylko Uri.Host członków.

Dotyczy interfejsów API