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

C# 十进制和十进制之间的差异,c#,class,C#,Class,如果有人能向我解释十进制和十进制C#的区别,那就太好了 在更一般的情况下,像decimal,int,string这样的小写结构与decimal,Int32,string这样的大写类之间的区别是什么 唯一的区别是大写类也包装函数(如Decimal.Divide())?它们是相同的。decimal类型是System.decimal的别名 所以基本上十进制和十进制是一样的。根据用户的喜好,使用哪一个,但最喜欢使用int和string,因为它们更容易在C++程序员中进行类型化和更熟悉。p> decima

如果有人能向我解释十进制和十进制C#的区别,那就太好了

在更一般的情况下,像decimal,int,string这样的小写结构与decimal,Int32,string这样的大写类之间的区别是什么


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

它们是相同的。decimal类型是System.decimal的别名


所以基本上十进制和十进制是一样的。根据用户的喜好,使用哪一个,但最喜欢使用int和string,因为它们更容易在C++程序员中进行类型化和更熟悉。p> decimal、int、string都是简写符号,让事情变得更简单/更漂亮。框架并不真正知道“decimal”是什么,但它知道System.decimal,所以当您编译代码时,decimal会变成System.decimal。试着看一些代码,其中所有类型都是完全限定的,然后试着看一些使用别名的代码,我认为大多数程序员会喜欢更紧凑的别名,并认为它更易于阅读。我还认为这可能是对C/C++的一种回馈,以使转换更容易。

它们并不都是结构*。它们是系统命名空间中预定义类型的别名。它们在所有方面都是一样的。别名类型为小写,格式类似于关键字(深蓝色)。系统类型采用PASCALCA格式,格式类似于类型(浅蓝色)


*
object
string
是类

因为C#是一种.NET语言,所以所有类型都必须映射到.NET Framework类型

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

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

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);

下面将显示每个别名映射到哪个
System.ValueType
。特别是对于
Decimal
Decimal
,您可以引用这一点。

如果C不区分大小写,有些人可能会像在Cobol和VB中那样使用所有大写字母编写应用程序。这将使开发人员无法阅读和维护代码。区分大小写是设计人员帮助使语言更可用的努力

如果它们完全相同,为什么我们两个都有呢?为什么不只是其中一个呢?decimal是.NET类型System.decimal的C#特定版本,因为它只是一个别名。如果设计者没有做到&使语言区分大小写,就不会有问题了。为数不多的真正愚蠢的决定之一,IMHO。@RolandTumble-为什么在你看来区分大小写是“愚蠢的”?区分大小写是愚蠢的,因为它会导致错误/歧义/混乱。你真的想要剂量测定法和剂量测定法吗?你真的需要十进制和十进制吗?(玩魔鬼有点鼓吹)。同样,您也不希望开发人员随意使用case,但编译器规则可以强制使用一致的case。