system.Decimalは 'decimal'よりも多くのメモリを使用しますか?
質問
C#では、Decimalは小文字の10進数に解決され、メモリが必要なため、C#では大文字のDecimalが小文字の10進数よりも多くのメモリを使用していると言われました。
それは本当ですか?
解決
いいえ。
decimal
は、単に System.Decimal
のエイリアスです。それらはまったく同じであり、エイリアスはコンパイル時に解決されます。
他のヒント
いいえ、それは真実ではありません。
decimal
キーワードは、 System.Decimal
タイプのエイリアスです。これらはまったく同じタイプなので、メモリの違いやパフォーマンスの違いはありません。リフレクションを使用してコンパイルされたコードを見ると、ソースコードでエイリアスまたはシステムタイプが使用されたかどうかを判断することすらできません。
ただし、エイリアスとシステムタイプを使用できる場所には2つの違いがあります。
-
decimal
エイリアスは常にシステムタイプであり、いかなる方法でも変更できません。Decimal
識別子の使用は、System
名前空間のインポートに依存しています。システムタイプの明確な名前はglobal :: System.Decimal
です。 -
一部の言語構成体は、型ではなくエイリアスのみを受け入れます。
decimal
の例を考えることはできませんが、enumの基になる型を指定する場合、int
などの言語エイリアスのみを使用でき、< code> System.Int32 。
いいえ。それはばかげている。
C#では、decimalはDecimalの同義語です。コンパイラは、10進数の宣言をDecimalとして扱い、コンパイルされたコードはDecimalが使用されたかのようになります。