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