十进制和十进制之间的差异

如果有人能向我解释C#中十进制和​​十进制之间的区别,那就太棒了。

以更一般的方式,小写结构如decimal,int,string和大写类Decimal,Int32,String之间的区别是什么。

唯一的区别是大写类也包装函数(如Decimal.Divide())?

他们是一样的。 十进制类型是System.Decimal的别名。

所以基本上十进制和Decimal是一样的。 这取决于用户的偏好哪个使用,但大多数人更喜欢使用int和string,因为它们更容易键入,更熟悉C ++程序员。

由于C#是.NET语言,因此所有类型都必须映射到.NET Framework类型。

要回答第一个问题,decimal是System.Decimal .NET Framework类型的别名。 它们可以互换使用。

要回答第二个问题,Decimal和decimal都应该扩展相同的函数,包括创建的变量和值类型本身的“Structure”。

decimal FirstDec = 12; Decimal SecondDec = 13; decimal ThirdDec = decimal.Ceiling(FirstDec, SecondDec); Decimal FourthDec = Decimal.Floor(ThirdDec); bool isEqual = FirstDec.Equals(SecondDec) && FourthDec.Equals(ThirdDec); 

以下内置类型的MSDN页面将显示每个别名映射到哪个System.ValueType 。 特别是对于Decimaldecimal ,您可以引用此MSDN页面为十进制 。

内置的C#类型不是所有结构*。 它们是System命名空间中预定义类型的别名。 除了格式化之外,它们在所有方面都是相同的。 别名类型为小写,格式类似于关键字(深蓝色)。 系统类型是PascalCased并且格式类似于类型(浅蓝色)。


* objectstring是类

十进制,整数,字符串都只是简单的符号,使你的事情变得更容易/更漂亮。 框架并不真正知道“十进制”是什么,但它确实知道System.Decimal,因此当您编译代码时,十进制只会变成System.Decimal。 尝试查看一些代码,其中所有类型都是完全限定的,然后尝试查看使用别名的代码,我认为大多数程序员会更喜欢更紧凑的别名并认为它更容易阅读。 我也认为这可能是回归C / C ++以使转换更容易。

如果没有C#区分大小写,有些人会像在Cobol和VB中那样编写所有大写的应用程序。 这将使开发人员无法读取代码并进行维护。 区分大小写是设计人员努力帮助提高语言可用性。