【发布时间】:2020-07-20 11:32:09
【问题描述】:
我有以下几点:
EnErrorCodes WriteToCard(EnRegs address, byte data)
EnErrorCodes WriteToCard(EnRegs address, ushort data)
EnErrorCodes WriteToCard(EnRegs address, uint data)
EnErrorCodes WriteToCard(EnRegs address, float data)
EnErrorCodes WriteToCard(EnRegs address, double data)
但错过了ulong 重载。
当盲目地使用 ulong 的重载时,编译器选择了 float 重载而不是抛出错误。
花了很长时间才弄清楚为什么系统没有正确写入该数据,只是 ctrl+单击调用它的 WriteToCard 方法,然后将其带到浮点重载。
创建ulong 显然对其进行了排序,但我不明白为什么会发生这种情况,因为尝试查找它是一个相当烦人的功能。
【问题讨论】:
-
ulong 可以隐式转换为float:docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
标签: c# overloading