2011-08-04 15 views

答えて

4

stringは、System.Stringクラスのキーワードとエイリアスであり、System.Stringはクラスです。 string以上の別名があります。また:

object: System.Object 
string: System.String 
bool: System.Boolean 
byte: System.Byte 
sbyte: System.SByte 
short: System.Int16 
ushort: System.UInt16 
int: System.Int32 
uint: System.UInt32 
long: System.Int64 
ulong: System.UInt64 
float: System.Single 
double: System.Double 
decimal: System.Decimal 
char: System.Char 

最良の答えは彼の本CLR経由のC#でジェフリー・リヒターから来ています。ここでは彼の3つの理由です:私は混乱し、開発者の数を見てきました

  • 、そのコードに するかどうかを使用する文字列または文字列を知りません。 C#では文字列( キーワード)がSystem.String(FCLタイプ)に正確にマップされるため、 の違いがなく、いずれかを使用できます。

  • C#では、longはSystem.Int64にマップされますが、異なるプログラミング 言語でlongはInt16またはInt32にマップできます。実際には、C++/CLIは実際には をInt32として長く扱います。 1つの 言語のソースコードを読んでいる誰かが、別のプログラミング言語でのプログラミングに が使用された場合、コードの意図を誤って解釈する可能性があります。実際、 ほとんどの言語はキーワードとして扱われず、それを使用するコード をコンパイルしません。

  • FCLには、メソッド名の一部として型名を持つ多くのメソッドがあります。たとえば、BinaryReader型はReadBoolean、ReadInt32、ReadSingleなどのメソッド を提供し、 System.Convert型はToBoolean、ToInt32、 ToSingleなどのメソッドを提供します。

4

stringは、実際のクラスSystem.StringのC#言語エイリアスです。

どちらでも安全に使用できます。私はほとんどの人がstringを好むのを見た。私がAPIで作業しているのであれば、どちらも安全ですが、通常はSystem.Stringを使用します。

他にも多くのエイリアスがあります。たとえば、intSystem.Int32の別名で、boolSystem.Booleanです。文字列の例はちょうど大文字と小文字の違いですので、この疑問がたくさん出てきます。

+0

int/Int32、bool/Boolean、double/Doubleなどと同じです。多くの一般的な型は、より使い慣れた(C/C++)キーワードにエイリアスされています。 –

+0

なぜ2つありますか? :) –

+0

2つではありません。 – BoltClock

0

実際には、stringには1つのキーワードしかありません(すべてのC#キーワードは小文字です)。彼らは同じことを意味します。ただし、using System;のインポートがある場合は、それらは交換可能です。

0

Stringは、使用している実際のクラスです。それは単なる別のクラスです。しかし、文字列はプログラミングにとって非常に重要なので、マイクロソフトはというキーワードを作成して、System.Stringのエイリアスに過ぎないようにしました。それはクラスではないので、stringというインスタンスのようなものはありません。

これ(...ハローワールドスタイルのプログラミングを書き、実際に周りを見て、Stringクラスを見つける必要がしようとしていると想像)のステータスを上昇した文字列を与え、見つけるのは、彼らが非常に簡単に作られた:D

関連する問題