stringとString、intとInt32、違いは?

結論:stringとStringは一緒のもの

研究室で先輩が遺したコードをいじっていると、文字列型をStringと定義しているのによく出くわします。

C#は大文字小文字を区別する言語ですが、文字列型は、stringとも、Stringとも定義できます。まぁ、一般的には先頭が小文字のstringを使うかと思います。

私の研究室でStringがよく使われているのは、昔はJavaがよく使われていたからです。Javaでは文字列型はStringなので、C#でもStringと書ける以上、みんなStringと書いてきた。

では、stringとStringは、何が違うのでしょう。他にもC#では、intをInt32と書けたり、doubleをDoubleと書けたりします。

実はintとInt32は、全く同一です。intは、ただのInt32(正確に書けばSystem.Int32)のエイリアスです。コンパイルすると、どちらで書いても全く同じコンパイル結果(System.Int32)となるのです。

これは、C#が、組み込み型については、省略形をキーワード(予約語)として提供してくれているためです。
.NET Frameworkでは、組み込み型であっても、特別扱いせず定義されています。たとえばStringは、正しくは名前空間が付いて、System.Stringです。using System;しているからStringと書けるわけですが、正式名称をいちいち書くのは長いのです。
そこでC#では、これらを短く、stringやdoubleと書けるようにしました。(stringはエイリアスなので、System.stringとは書けません。)

組み込み型は、頻繁に使うしね。それにintとかlongとか書ければ、他のプログラミング言語から移り住んで来た人もすぐに型を見つけられるし。

ということで私は、こいつJava使いだな…!とか思いながら、日々コードを直すのである。おしまい。

カテゴリー: プログラミング タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です