2012-05-03 4 views
0

単一のchar型の値を大文字にする簡単な方法はありますか?Cで単一のchar'acterを大文字にする?

これは動作しますが、面倒で、一般的に間違っていると感じます。

var ch = 'a'; 
var cap = ("" + ch).ToUpper()[0]; 
cap.Dump(); // (in LINQPad) => 'A' 

注:

  1. ReSharperのは後者と文化を指定しないために私に叫ぶので"" + chToString()以上の選択肢があります...いずれにしても、ch.ToString().ToUpper()[0]は煩わしいと感じます。
  2. グローバリゼーションのために、「32を追加する」はオプションではありません;大文字にしたときにサロゲートペアになる単一のcharがあるとは思いません。

おかげで、

+0

を試してみてくださいASCIIでさえもオプションではありません:あなたは代わりに32を減算する必要があると思います。 – dan04

+0

@ dan04ありがとう、訂正;-) –

答えて

11
Char.ToUpper(ch) 

は、仕事をする必要があります。

+0

ブリリアント。私は[intellisense]インスタンスメソッドだけを見ていた... RTFMされている必要があります。 –

+1

私は時々同じ罠に陥る。一般的には、使い慣れた型の静的メソッドを調べて、使用可能なものを確認するだけの価値があります。このケースでは、ReflectorでToUpperメソッドを検索して、内部での動作を確認しましたが、代わりにこのメソッドが見つかりました。 – TheEvilPenguin

2

は、 "26の追加" Char.ToUpper()

var a = 'a'; 
a = Char.ToUpper(a); 
関連する問題