Char メソッドは、Latin-1 範囲の文字に対して正しい Unicode カテゴリを返すようになりました。 カテゴリは Unicode 標準のカテゴリと一致します。
変更の説明
以前の .NET バージョンでは、 Char メソッドでは、Latin-1 範囲の文字に Unicode カテゴリの固定リストが使用されました。 ただし、Unicode 標準では、これらの API が実装されて以降、これらの文字の一部のカテゴリが変更され、不一致が生じていました。 さらに、Unicode 標準に従う Char API と CharUnicodeInfo API の間にも不一致が生じた。 .NET 5 以降のバージョンでは、 Char メソッドは、すべての文字の Unicode 標準に一致する Unicode カテゴリを使用して返します。
次の表は、.NET 5 で Unicode カテゴリが変更された文字を示しています。
キャラクター | Unicode カテゴリ 以前の .NET バージョンの場合 |
Unicode カテゴリ .NET 5 以降のバージョンの場合 |
---|---|---|
§ (\u00a7) | OtherSymbol |
OtherPunctuation |
ª (\u00aa) | LowercaseLetter |
OtherLetter |
SHY (\u00ad) | DashPunctuation |
Format |
¶ (\u00b6) | OtherSymbol |
OtherPunctuation |
º (\u00ba) | LowercaseLetter |
OtherLetter |
導入されたバージョン
.NET 5.0
推奨されるアクション
Char クラスを使用して Unicode 文字カテゴリを取得し、カテゴリが変更されないことを前提とするコードがある場合は、更新が必要になることがあります。
変更の理由
この変更は、 Char 型によって返されるカテゴリが Unicode 標準と CharUnicodeInfo の両方の型と一致するように行われました。
影響を受ける API
- System.Char.GetUnicodeCategory
- System.Char.IsLetter
- System.Char.IsPunctuation
- System.Char.IsSymbol
- System.Char.IsLower
さらに、Unicode 文字カテゴリを取得するために Char に依存するすべてのクラス ( Regexなど) は、この変更の影響を受けます。
.NET