当前位置: 首页 > 编程语言 > C#

为什么需要数字后缀?为什么分享

时间:2023-04-10 18:22:49 C#

需要数字后缀?C#语言(以及我确定的其他语言)要求在数字文字末尾添加后缀。这些后缀表示文字的类型。例如,5m是小数,5f是浮点数。我的问题是:这些后缀真的是必需的,还是可以从上下文中推断出文字的类型?例如,代码decimald=5.0应该推断出5.0不是双精度数,而是十进制数。这种语法会导致问题吗?这对于像这样的简单情况很好:floatf=7;但最好是明确的,这样你就不必担心像这样的语句:floatf=(double)(int)(1/3+6e22/(double)7);是的,我知道这是一个人为的例子,但我们不知道编码器从左边的类型的意图,特别是如果它根本没有分配给变量(例如作为参数传递给重载函数)可以采取int、float、double、decimal等之一。通常,我们尝试设计语言,以便有关类型的信息“流出”而不是“流入”。也就是说,表达式的类型是通过首先分析它的每个子表达式来确定的,然后我们看它是否与其上下文一致——我们通常不会反其道而行之,从上下文推理到子表达式。当类型信息可以双向流动时,您可能会遇到一些非常难以分析的情况,例如lambda表达式。现在,在您提到的特定情况下,我们可以编写一条规则,说“浮点文字可以转换为十进制而不损失精度或大小,不需要m后缀”,就像文字整数适合自动进行短转换一样。但是添加一个“m”很容易,当一些文字被自动转换而另一些没有自动转换时会造成混淆,并且要求类型保持一致会使代码更容易理解和更多的自我记录。以上是C#学习教程:为什么需要数字后缀?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: