使用0M而不是0作为十进制值?

i48*_*486 3 c#

是否有必要M为赋值和decimal变量比较添加零值?

decimal val;
...
if (val == 0M)
{
}
Run Code Online (Sandbox Code Playgroud)

要么

if (val == 0)
{
}
Run Code Online (Sandbox Code Playgroud)

我想常量将在编译时转换,结果将是相同的.

Adr*_*ian 5

没有必要.整数类型隐式地转换decimal.M如果文字表示浮点数,则必须添加后缀.没有类型后缀的浮点文字double是需要显式强制转换的decimal.

decimal d = 1;     // works
decimal d2 = 1.0   // does not work
decimal d3 = 1.0M  // works
Run Code Online (Sandbox Code Playgroud)

0这里的文字显然是整数文字的一个特例.

  • 来这里参加聚会有点晚了;我知道没有必要 - 但你对可读性有何看法?在我的应用程序中,我向每个长/小数/双/浮点值添加了特定后缀“l”/“m”/“d”/“f” - 所以我只要看到该值就知道它是什么确切类型。好主意?或者太多? (2认同)