Aracılığıyla paylaş


URI'lerdeki mailto: kullanıcı bilgileri karşılaştırılır

Daha önce, Uri iki Uri örneği eşitlik için karşılaştırırken kullanıcı bilgilerini karşılaştırmamıştı. Ancak, URI'ler söz konusu olduğunda mailto: bu davranış sezgisel değildir. Bu değişiklikle Uri.Equals birlikte operatör artık == URI'leri karşılaştırırken kullanıcı bilgilerini dikkate alır.

Önceki davranış

.NET 8'in öncesinde, aşağıdaki karşılaştırmaların her ikisi de döndürdü true.

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.

Yeni davranış

.NET 8'den başlayarak, ilk karşılaştırma yine döndürür true, ancak ikinci karşılaştırma (URI'ler mailto ) döndürür 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.

Sürüm kullanıma sunulmuştur

.NET 8

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Önceki davranış beklenmeyen ve uygunsuzdu.

E-posta adreslerinin yalnızca konak bölümünü karşılaştırmak istiyorsanız, yalnızca üyeleri karşılaştırın Uri.Host .

Etkilenen API’ler