stringとString

これには最初に見たときは戸惑った。
結論から書くと、string(型)はStringクラスのエイリアスであり、本質的には同じものとなる。
また、原則として小文字のstringを使うことが奨励されている。

その背景。
C#ではboxingがサポートされている為、intとInt32は自動的に変換される(JavaでいうならばintとIntegerへ)。
だけど、C#の場合はJavaでいう所の基本リテラル型が存在しない。
よってintで記述していても、それはInt32クラスのインスタンスとして宣言していることと同じ。
(実際には new Int32(10) というように宣言はできない)
つまり、C#では文字列を簡単に扱うため、stringというエイリアスを与え基本型と同じように扱えるようした、ということになる。