VB.NETではSystem名前空間をインポートすればどちらもString
という表記になり組み込み型のString
とString
クラスとの区別が曖昧になります。
一方C#では、同じ文字列型でも組み込み型を表すstring
とSystem.Stringを表すString
の両方の表記を混在させることができます。
既に説明したようにstring
とString
のどちらを使っても同じですが、C#では一般に、変数や引数、メンバなどの宣言ではstring
を使い、静的メソッドを呼び出す場合などにはString
を使う、という使い分けをすることが多いようです。
比較的よく見られるstringとStringの使い分け
using System;
class Sample {
static void Main()
{
// 変数の宣言ではstringを使う
string s1 = "foo";
string s2 = "bar";
// 静的メソッドの呼び出しではStringを使う
bool b1 = String.Equals(s1, s2);
Console.WriteLine(b1);
}
}
逆に、次のような使い分けをすることもできます。 表記が異なるだけで上記のコードと以下のコードは全く等価です。
当然、string
やString
のどちらかだけに統一することもできますが、ガイドラインやコーディング規約などで定められている場合は、それに合わせて統一することが推奨されます。