2009-07-30 5 views
2

とき、私が使用する必要があります。いつ.NET Frameworkデータ型と言語データ型を使用する必要がありますか?

int myint = 0;//C# language data type 

Int32 myint = 0;//Framework data type 

類似点/相違点は何ですか?私はパフォーマンスの違いがあると言われていることを思い出しているようです。これは本当ですか?

+2

Intの代わりにInt32を意味しますか? –

+0

@bnaffas、yep、oops –

答えて

8

データ型の言語定義キーワードは、それぞれのBCL型のエイリアスです。だから、intは、一般的には

など、longInt64と同じで、Int32と全く同じである私は、しかし、それは言語定義型の名前に固執するのがベストだと思うだろう。コンパイラによってエイリアスが解決されるため、パフォーマンスの違いはまったくありません。

+0

私のC#コンパイラは、 'System.String []'で 'Main'をうれしく認識しました。このビットはどこから手に入れましたか? –

+0

ここにこの問題を抱えている人を覚えておいてください。間違っているかもしれない、試していない可能性があります。私はそのビットを削除しました。 – Joey

+0

Visual StudioでMain(String [])を有効なMainとして認識できない問題があります。 –

5

intは、System.Int32の別名です。stringは、System.Stringの別名です。違いはありません。

しかし、intstringを使用することをお勧めします。これらのシステムは同等のものではなく、ほとんどが読みやすくするためです。 StyleCopなどのソーススタイルチェッカーを使用すると、すべてのSystem.StringおよびSystem.Int32の宣言が、それよりも短い同等のものに置き換えられます。

+1

通常、すべてのソースファイルには 'using System;'がありますので、それぞれの使用時に型名をその名前空間に修飾する必要はありません:) – Joey

+0

usingステートメントが原因である必要はありませんが、intとstringの場合は、決して行う必要はありません。 –

1

私はCLR型よりもC#言語エイリアスの使用を主張していましたが、Jeffery Richter氏が自分の書籍CLRのC#で宣言していると聞いた後、CLR型を使用するように設定を変更しました。 CLRでは、C#ではなくCLRが注目の中心であり、参照型と値型の間の色の手掛かりが視覚的にコードをすばやく解析するのに役立ちます。

関連する問題