• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# stringとSystem.String違い)

C# stringとSystem.Stringの違い

このQ&Aのポイント
  • C#のstringとSystem.Stringは同じ意味です。
  • stringはC#のネイティブなデータタイプであり、System.Stringは.NETライブラリのタイプの別名です。
  • どちらを使っても同じ結果が得られるため、使い分ける必要はありません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

string と System.String は型として使われる限り単なる別名なので同じものです。 foo.System.String みたいなものが用意されて foo 名前空間内から使うような場合は異なりますが,特殊例過ぎるのでこれは考えないものとします。 コンパイラは,ソース上の型として string と書かれているものは,System.String とかかれているものとして処理します。 # 正確には "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" という型 (.NET 4 の場合) これは,SDK 付属の逆アセンブラでコードを見ると,string を使っても System.String を使っても同じコードになることから確認できます。 同じように,int は System.Int32 の別名ですし,bool は System.Boolean の別名です。 使い分けは,特別決まりはありません。 唯一,メソッド名等に使う場合には言語固有の名称を避ける (CLR の名前を使う),というのはあります。 MSDN: 一般的な名前付け規則 http://msdn.microsoft.com/ja-jp/library/ms229045.aspx 具体的には, ・ToInt よりも, ・ToInt32 の方が好ましい,ということです。 # 上側の名前付け規則だと,Visual Basic においては ToInteger であるべき,となる。 私は,static メソッドの呼び出しに使う場合は CLR の名前を使い,それ以外では言語固有の名称を使っています。 書籍によっては,常に CLR の名前を使うべき,という物もあったりします。 # が, for (Int32 i = 0; ……みたいなコードはほとんど見ません。 自分なりの物でいいので,統一したルールを用意しておくのがよいでしょう。 # 常に言語固有の名称でもよいと思います。

devman
質問者

お礼

intやboolもでしたか。 非常に詳しく記述していただきありがとうございました。 知識を深めることが出来ました。 個人的なことですが、 既にstringに慣れてしまってるので、 Stringは使わずstringで統一したいと思います。

その他の回答 (1)

回答No.1

同じです。

devman
質問者

お礼

同じでしたか! すっきりしました>< ありがとうございます

関連するQ&A