在c#中是十进制和十进制不同?

时间:2009-12-22 15:27:22

标签: c# types

在c#中如果我使用decimal(小写'd'),IDE会以深蓝色显示(如int)。如果我使用Decimal(大写'd'),IDE会将其显示为蓝绿色(如类名)。在这两种情况下,工具提示都是struct System.Decimal

有什么区别吗?是一个“首选”?

9 个答案:

答案 0 :(得分:19)

都能跟得上;相同。 decimal 已定义作为System.Decimal的别名,并且通常是首选,但在公共方法名称中,您应使用正确的名称(ReadDecimal等) ) - 因为您的呼叫者可能不是C#。这在int vs ReadInt32

中更为明显

当然不是Java风格的拳击差异。

(当然,如果您执行类似声明更多命名空间本地Decimal执行完全不同的操作,那么之间的差异,但那将是愚蠢的。)< / p>

答案 1 :(得分:2)

同样的事情,Decimal是.Net类型,decimal是c#关键字。

答案 2 :(得分:2)

System.Decimal它是.NET Framework类型,decimal是C#语言中的别名

它们都在IL中编译为System.Decimal,所以没有区别。

intSystem.Int32stringSystem.String等完全相同。

答案 3 :(得分:1)

decimal是Decimal的别名。他们是一回事。

答案 4 :(得分:1)

深蓝色代表语言关键字,蓝绿色代表类型。在decimal的情况下,它是表示类型别名的关键字。

答案 5 :(得分:1)

decimal是一个关键字,始终引用基类库中定义的结构System.DecimalDecimal通常与大多数人在源代码之上using System;的含义相同。但是,严格地说,那些不相同(你不能盲目地找到并替换它们):

 namespace Test {
    class Decimal { }
 }

 // File2.cs
 using Test;
 class DecimalIsNotdecimal {
      void Method(decimal d) { ... }
      void Method(Decimal d) { ... } // works!
 }

答案 6 :(得分:0)

没有。它们只是捷径。

如果将鼠标悬停在小数上,您将看到System.Decimal。与int和System.Int32一样,object和System.Object,string和System.String,double和System.Double

我更喜欢小数和字符串,但我真的认为它是个人的

答案 7 :(得分:0)

不,他们是一回事。一个被着色为关键字(十进制),另一个被着色为类型(十进制)。关键字只是该类型的别名。

答案 8 :(得分:0)

同样的事情。 'decimal'是System.Decimal的c#关键字。

这适用于其他类型,如字符串和字符串等。