1. 程式人生 > >[C#學習筆記]C#中的decimal類型——《CLR via C#》

[C#學習筆記]C#中的decimal類型——《CLR via C#》

cep str flow ron 速度慢 加減 tro ima 操作符重載

System.Decimal是非常特殊的類型。在CLR中,Decimal類型不是基元類型。這就意味著CLR沒有知道如何處理Decimal的IL指令。

在文檔中查看Decimal類型,可以看到它提供了一系列的public static方法,包括Add、Subtract、Multiply、Divide等。此外Decimal類型還為加減乘除提供了操作符重載方法。

編譯使用了Decimal值的程序時,編譯器會生成代碼來調用Decimal的成員,並通過這些成員來執行實際的運算。

這意味著,Decimal值的處理速度慢於CLR基元類型的值。另外,由於沒有相應的IL指令來處理Decimal值,所以checked、unchecked操作符、語句以及編譯器開關都失去了作用

如果對Decimal值執行的運算是不安全的,肯定會拋出OverflowException異常。

[C#學習筆記]C#中的decimal類型——《CLR via C#》