mailto:
URI のユーザー情報を比較する
これまで Uri では、2 つの Uri
インスタンスの等価性を比較するときに、ユーザー情報を比較していませんでした。 ただし、mailto:
URI の場合、この動作は直感的ではありません。 この変更により、Uri.Equals と ==
演算子では、URI を比較するときにユーザー情報が考慮されるようになりました。
以前の動作
.NET 8 以前では、次の比較の両方で 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.
新しい動作
.NET 8 以降、最初の比較では引き続き true
が返されますが、2 番目の (mailto
URI の) 比較では 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.
導入されたバージョン
.NET 8
破壊的変更の種類
この変更は、動作変更です。
変更理由
以前の動作は予想しないものであり、直感的ではありませんでした。
推奨される操作
メール アドレスのホスト部分のみを比較する場合は、Uri.Host メンバーのみを比較します。
影響を受ける API
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET