1

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

真的吗?

4

3 回答 3

10

不。

decimal只是 . 的别名System.Decimal。它们完全相同,并且别名在编译时被解析。

于 2009-11-27T08:18:43.067 回答
4

不,那不是真的。

decimal关键字是 type 的别名System.Decimal。它们是完全相同的类型,因此没有内存差异,也没有性能差异。如果使用反射查看编译后的代码,甚至无法判断源代码中是否使用了别名或系统类型。

但是,您可以在何处使用别名和系统类型有两个不同之处:

  • 别名始终是系统类型,decimal不能以任何方式更改。标识符的使用Decimal依赖于System命名空间的导入。系统类型的明确名称是global::System.Decimal.

  • 一些语言结构只接受别名,而不接受类型。我想不出一个例子decimal,但是在为枚举指定基础类型时,您只能使用语言别名int,而不是相应的系统类型,如System.Int32.

于 2009-11-27T08:26:41.443 回答
1

不,这很愚蠢。

在 C# 中,decimal 只是 Decimal 的同义词。编译器会将十进制声明视为十进制,编译后的代码将与使用十进制一样。

于 2009-11-27T08:18:45.823 回答