我听说有人说在 C# 中,大写十进制比小写十进制使用更多内存,因为十进制被解析为小写十进制并且需要内存。
真的吗?
不。
decimal
只是 . 的别名System.Decimal
。它们完全相同,并且别名在编译时被解析。
不,那不是真的。
decimal
关键字是 type 的别名System.Decimal
。它们是完全相同的类型,因此没有内存差异,也没有性能差异。如果使用反射查看编译后的代码,甚至无法判断源代码中是否使用了别名或系统类型。
但是,您可以在何处使用别名和系统类型有两个不同之处:
别名始终是系统类型,decimal
不能以任何方式更改。标识符的使用Decimal
依赖于System
命名空间的导入。系统类型的明确名称是global::System.Decimal
.
一些语言结构只接受别名,而不接受类型。我想不出一个例子decimal
,但是在为枚举指定基础类型时,您只能使用语言别名int
,而不是相应的系统类型,如System.Int32
.
不,这很愚蠢。
在 C# 中,decimal 只是 Decimal 的同义词。编译器会将十进制声明视为十进制,编译后的代码将与使用十进制一样。