.NET Frameworkでは、少なくともC#言語では、文字列型の2つの「バージョン」があります。
- "ストリング"
- "ストリング"
それらは互換性があるように見えますが、本当にそうですか?それらが互換性がない場合、一般的に、他の代わりに一方を使用する方が良いでしょうか?
string
には存在せず.net
、C#にのみ存在します。
.NET Frameworkでは、少なくともC#言語では、文字列型の2つの「バージョン」があります。
それらは互換性があるように見えますが、本当にそうですか?それらが互換性がない場合、一般的に、他の代わりに一方を使用する方が良いでしょうか?
string
には存在せず.net
、C#にのみ存在します。
回答:
まあMSDNによると
stringは、.NET FrameworkのStringのエイリアスです。
ここで、「文字列」は実際System.String
です。
それらは互換性があり、どちらを使用するか、いつどこで使用するかに違いはありません。
ただし、どちらを使用したかと一致している方が良いでしょう。
String
(したがってstring
エイリアスによる)は参照型です。
指摘したように、それらは同じものでstring
あり、単にのエイリアスString
です。
価値のあるものについては、string
変数、プロパティ、戻り値、およびパラメーターの型を宣言するために使用します。-これは、他のシステム・タイプの使用と一致してint
、bool
、var
など(ただし、Int32
とBoolean
も正しいです)。
またはのString
ようなStringクラスの静的メソッドを使用するときに使用します。メソッドはクラスに属し、他の静的メソッドを使用する方法と一貫性があるため、これはより理にかなっていると思います。String.Split()
String.IsNullOrEmpty()
小文字を使用することをお勧めしstring
ます。大文字は、String
それがインポートの名前空間で見つかった文字列の名前の最初のクラス...一般的に使用されますSystem.String
。代わりに独自のStringクラスを使用することもできます。
String
して働くことは可能ですが、trickすることは決してできませんstring
。
string
。
string
は単なるC#キーワードであり、 System.String
..butそれがキーワードだ、あなたの構文は、エディタ/ IDEは、キーワードの色で表示されます、intと同じ、ダブル、もし、そうでない、などの文体着色としては、キーワードではなく、使用することを好むかもしれSystem.String
タイプを(あるいは単にString
後完了しましたusing System;
)。
これは、しかしニッチ点であるもののとしてbool
、char
、int
、double
およびstring
システム・タイプのすべてのキーワードの別名であり、string
それは参照型であり、他の値型であるように、奇数ワンアウトです。
object
あまりにも、参照型のキーワード別名である
string
はのエイリアスに過ぎず、String
最終的には同じです。
私は、一般的に使用していますがあなたは、あなたが好む方使用することができstring
、私は(に似た多くのプリミティブデータ型のようにそれを使用して計画していたときint
、float
またはbool
)およびString
Iは、オブジェクト/クラスとしてそれを使用して計画していたとき。例えば:
string foo = " ";
if (String.isNullOrWhitespace(foo))
{
// ...
}
上記の場合、foo
テキストを(事実上プリミティブとして)格納するためだけに使用することを計画しているためstring
、ただし、電話String.isNullOrWhitespace(string)
するときはを使用しますString
。通常、クラス名の最初の文字は大文字(String
)で、プリミティブの最初の文字(などint
)は大文字ではないため、これを行います。