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