0
Char
は、文字を現在のカルチャとは独立して大文字/小文字に変換する方法ToLowerInvariant
とToUpperInvariant
を実装しています。しかし、IsUpperInvariant
とIsLowerInvariant
の方法はありません。どうして?char.IsUpperInvariant/char.IsLowerInvariantメソッドが存在しないのはなぜですか?
Char
は、文字を現在のカルチャとは独立して大文字/小文字に変換する方法ToLowerInvariant
とToUpperInvariant
を実装しています。しかし、IsUpperInvariant
とIsLowerInvariant
の方法はありません。どうして?char.IsUpperInvariant/char.IsLowerInvariantメソッドが存在しないのはなぜですか?
次のメソッドは、あなたが得ることができる最高のとおりです。
文字は大文字/フォーマットを下げるために変換されると、変換は文化特異的であったかどうかそのケースを適切に検出します。
一方、指定された文字がカルチャ固有の変換か不変の変換の積であるかどうかは言えません。あなたはそれを見て、その現在のケースが下か上かを観察できます。たとえば、大文字変換から得られた文字E
が与えられた場合、元々ë
またはe
だったとしたらどうなるでしょうか?あなたがそれが元の形であり、現在の文化がシステムを使っていることを知らなければ、あなたは単純にできません。
回避策として、自分で書き込むことができます。 – Sweeper
彼らは何を返すでしょうか? ToUpperInvariant/ToLowerInvariantがそれ自身を返す場合はtrue? –
私は、短い答えは、それがmscorlibにするのに十分ではないと思っています。 'c == Char.ToLowerInvariant(c)'は 'Char.IsLowerInvariant(c)'よりほんのわずかの文字です。また、 'IsLower'のために追加されている場合は、他の' Char.Is'メソッドのほとんどに追加する必要があります – Slai