Skip to content

Instantly share code, notes, and snippets.

@xl1
Last active June 22, 2023 09:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xl1/b0469af1be7a354122f9628dc4e48979 to your computer and use it in GitHub Desktop.
Save xl1/b0469af1be7a354122f9628dc4e48979 to your computer and use it in GitHub Desktop.
.NET 7 で追加された char の static methods

.NET 7 で追加された char の static methods

charIsAsciiDigit IsBetween などが増えているのに気が付いた

どうやら .NET 7 でいくつか追加されていたらしい dotnet/runtime#68868

今までみんな勝手に実装してたから標準に入ったのはいいね

これまでの類似メソッドとの違い

もともと char.IsDigit, IsNumber, IsLetter などがあったが、これらは Unicode のカテゴリをもとに分類されている。たとえば:

  • IsNumber は Number カテゴリに含まれるものが true になるので、たとえばローマ数字 () や分数 () なども含まれる
  • IsDigit は Number の下位カテゴリである十進数字 (Number, Decimal Digit) のみが true になり、全角数字 () やベンガル数字 () なども含まれる

実際、ベンガル数字はいいけどローマ数字はダメ、とかいう要件発生することないし、例えば [0-90-9] のつもりで誤って IsDigit 使うようなこともあるあるだったのでは。 今後は IsAsciiXXX を使えばよいとなることが増えそう

char.IsXXX

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment