c# - 有关隐式类型的更多信息

标签 c#

作为问题what is the purpose of double implying的后续...

另外,我前一段时间读过一篇文章(不,我不记得链接),不适合执行decimal dollars = 0.00M;。它指出,适当的方法是decimal dollars = 0;。它还指出,这适用于所有数字类型。这是不正确的,为什么?如果是这样,那么0有什么特别之处?

最佳答案

好吧,对于任何整数,都可以使用从intdecimal的隐式转换,这就是为什么它可以编译的原因。 (零还具有其他一些有趣的属性...您可以将任何常量零表达式隐式转换为任何枚举类型。它不适用于类型为doublefloatdecimal的常量表达式,但是它碰巧会在MS编译器中执行此操作。)

但是,如果这是您要指定的精度,则可能要使用0.00m。与doublefloat不同,decimal未被规范化-因此0m0.0m0.00m在内部具有不同的表示形式-当您在它们上调用ToString时可以看到。 (整数0将隐式转换为与0m相同的表示形式。)

因此,真正的问题是,在特定情况下您想代表什么?

关于c# - 有关隐式类型的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866670/

相关文章:

c# - 正则表达式,初学者示例

c# - ServiceStack Redis获取结构始终返回默认值

c# - C#-具有单个方法和2个名为param的xml-rpc

c# - 如何使用 C# linq 对文件路径集合进行排序

c# - 将对象类型数据转换为值类型的最佳方法

c# - 如何在不转换时间的情况下更改 ZonedDateTime 的时区

c# - NHibernate 在许多查询中产生多对多结果

c# - 如何在正确的位置生成带有 'and' 的字符串

c# - WPF XAML 全局引用

c# - EF 4 - 没有代理的延迟加载