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