最佳重载方法匹配具有 class 构造函数的一些无效参数 (C#)

The best overloaded method match has some invalid arguments for a class constructor (C#)

我遇到了这个错误,但不完全确定原因。在一个 class 中,我使用以下代码行创建了一个对象:

StoreSale sale = new StoreSale(1, 13.99);

StoreSale class 中的构造函数如下所示:

public StoreSale(int quantity, float value)
{
   this.quantity = quantity;
   this.value = value;
}

...我收到错误消息“'applicationname' 的最佳重载方法匹配。StoreSale.StoreSale(int, float) 有一些无效参数。”

有人可以告诉我我做错了什么吗?

13.99 是一个 double。要使其成为 float 文字,请添加一个 f13.99f.

13.99double 文字。添加一个 f 使其成为一个浮点数:13.99f.

无论如何,您可能不想对货币值使用二进制浮点数。 decimal 是一个明智得多的选择。

您收到此错误是因为文字 13.99double,并且没有从 doublefloat 的隐式转换。请改用 13.99F

StoreSale sale = new StoreSale(1, 13.99F);