system.Decimal是否使用比'decimal'更多的内存?

时间:2009-11-27 08:16:56

标签: c# struct uppercase lowercase

我听说有人说在C#中,大小十进制使用的内存大于小写十进制,因为十进制被解析为小写十进制并且需要内存。

这是真的吗?

3 个答案:

答案 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的同义词。编译器会将十进制声明视为十进制,编译后的代码就像使用十进制一样。