可能性の重複:私は2つの異なるキーワード(?クラス)資本Sで始まる1として、他のがある参照
String vs string in C#なぜ二つのキーワード:文字列と文字列
小さなC#で。
文字列と文字列
理由は何ですか。十分ではありませんか?
可能性の重複:私は2つの異なるキーワード(?クラス)資本Sで始まる1として、他のがある参照
String vs string in C#なぜ二つのキーワード:文字列と文字列
小さなC#で。
文字列と文字列
理由は何ですか。十分ではありませんか?
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などのメソッドを提供します。
string
は、実際のクラスSystem.String
のC#言語エイリアスです。
どちらでも安全に使用できます。私はほとんどの人がstring
を好むのを見た。私がAPIで作業しているのであれば、どちらも安全ですが、通常はSystem.String
を使用します。
他にも多くのエイリアスがあります。たとえば、int
はSystem.Int32
の別名で、bool
はSystem.Boolean
です。文字列の例はちょうど大文字と小文字の違いですので、この疑問がたくさん出てきます。
int/Int32、bool/Boolean、double/Doubleなどと同じです。多くの一般的な型は、より使い慣れた(C/C++)キーワードにエイリアスされています。 –
なぜ2つありますか? :) –
2つではありません。 – BoltClock
実際には、stringには1つのキーワードしかありません(すべてのC#キーワードは小文字です)。彼らは同じことを意味します。ただし、using System;
のインポートがある場合は、それらは交換可能です。
String
は、使用している実際のクラスです。それは単なる別のクラスです。しかし、文字列はプログラミングにとって非常に重要なので、マイクロソフトはというキーワードを作成して、System.String
のエイリアスに過ぎないようにしました。それはクラスではないので、string
というインスタンスのようなものはありません。
これ(...ハローワールドスタイルのプログラミングを書き、実際に周りを見て、Stringクラスを見つける必要がしようとしていると想像)のステータスを上昇した文字列を与え、見つけるのは、彼らが非常に簡単に作られた:D
'STRING'キーワードではありません。 – BoltClock