C#で開発をしていてふと疑問に思うのが、小文字ではじまる「string」と大文字の「String」に違いはあるのだろうか?ということ。
stack overflowで2658個の投票、496個のスター、46個の回答が付いていることからわかるように、簡単な疑問にも関わらず関心は高い。
What’s the difference between String and string?
stringはStringの別名
Javaをやっていた人は、Javaの文字列型がStringだから、C#をはじめるとこういうコードを書いてしまう。
1 |
String text = "Lorem ipsum"; |
しかしこれは、小文字の場合と何ら変わらない。
1 |
string text = "Lorem ipsum"; |
それというのも、stringはSystem.String型のエイリアス(別名)なだけだから、intがSystem.Int32であるのと同じように、全く同じに動作する。
1 2 3 4 5 6 7 8 9 10 11 12 |
string lowerTypeText = "This is lower"; String upperTypeText = "This is upper"; // Lower equals upper? True Console.WriteLine( "Lower equals upper? {0}", lowerTypeText is String); // Upper equals lower? True Console.WriteLine( "Upper equals lower? {0}", upperTypeText is string); |
どちらを使うべきか?
これはもう公式に回答があって、小文字のstringを使うべき。
というのも、StyleCopというマイクロソフト謹製のコーディングスタイル指摘ツールでルール付けされているから。
特に理由がない限り、intをInt32と書く人がいないように、できるだけstringを使っていこう。
StyleCopについて詳しくはこちら
C#おすすめ図書
他の言語をやったことがあって、その言語の作法でC#を書いちゃったことのある人へ
他人にとって読みやすいコードを書くための永遠の名著