2017-12-28 18 views
0

Charは、文字を現在のカルチャとは独立して大文字/小文字に変換する方法ToLowerInvariantToUpperInvariantを実装しています。しかし、IsUpperInvariantIsLowerInvariantの方法はありません。どうして?char.IsUpperInvariant/char.IsLowerInvariantメソッドが存在しないのはなぜですか?

+0

回避策として、自分で書き込むことができます。 – Sweeper

+0

彼らは何を返すでしょうか? ToUpperInvariant/ToLowerInvariantがそれ自身を返す場合はtrue? –

+0

私は、短い答えは、それがmscorlibにするのに十分ではないと思っています。 'c == Char.ToLowerInvariant(c)'は 'Char.IsLowerInvariant(c)'よりほんのわずかの文字です。また、 'IsLower'のために追加されている場合は、他の' Char.Is'メソッドのほとんどに追加する必要があります – Slai

答えて

2

次のメソッドは、あなたが得ることができる最高のとおりです。

文字は大文字/フォーマットを下げるために変換されると、変換は文化特異的であったかどうかそのケースを適切に検出します。

一方、指定された文字がカルチャ固有の変換か不変の変換の積であるかどうかは言えません。あなたはそれを見て、その現在のケースが下か上かを観察できます。たとえば、大文字変換から得られた文字Eが与えられた場合、元々ëまたはeだったとしたらどうなるでしょうか?あなたがそれが元の形であり、現在の文化がシステムを使っていることを知らなければ、あなたは単純にできません。

関連する問題