gpt4 book ai didi

c# - 为什么编译器不能决定类型

转载 作者:太空狗 更新时间:2023-10-29 23:18:05 25 4
gpt4 key购买 nike

我只是想知道为什么我们需要为十进制类型附加 m 或 M?

Documentation says there is no implicit conversion

我认为编译器有足够的信息,因为我们声明了 Decimal 关键字。

有人可以解释为什么编译器不能确定值应该被视为十进制但不是 double 。

最佳答案

如果你有这样的陈述

decimal x = 5.6;

编译器首先只查看赋值的右侧 (5.6),确定其类型 (double),然后检查结果是否可以赋值到左侧的变量 (x)。

由于 x 被声明为 decimal 但编译器已确定该表达式是 double 类型(并且没有隐式转换double to decimal), 赋值无效。

(此规则的唯一异常(exception)是将 lambda 表达式分配给委托(delegate)变量。在这种情况下,编译器确实使用左侧的信息来确定右侧的类型。)

关于c# - 为什么编译器不能决定类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com