Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#编程错误问题?_C# - Fatal编程技术网

C#编程错误问题?

C#编程错误问题?,c#,C#,我上的是一门基础C#programming课程,在做以下练习之前,我一直在理解所有内容。如果有人能检查我的代码并帮我解决问题,那就太好了。我在这段代码中得到了三个不同的错误(CS1620、CS0266和CS1955)。我有一个同学试图帮我,但结果不太好 以下是练习提示: 计件工按件计酬。产出更多的工人通常会得到更高的工资 表单:使用文本框获取人员姓名和完成的件数。包括“计算”命令按钮以显示赚取的美元金额。您需要一个摘要按钮来显示总件数、总工资和人均平均工资。“清除”按钮应清除当前员工的姓名和件数

我上的是一门基础C#programming课程,在做以下练习之前,我一直在理解所有内容。如果有人能检查我的代码并帮我解决问题,那就太好了。我在这段代码中得到了三个不同的错误(CS1620、CS0266和CS1955)。我有一个同学试图帮我,但结果不太好

以下是练习提示:

计件工按件计酬。产出更多的工人通常会得到更高的工资

表单:使用文本框获取人员姓名和完成的件数。包括“计算”命令按钮以显示赚取的美元金额。您需要一个摘要按钮来显示总件数、总工资和人均平均工资。“清除”按钮应清除当前员工的姓名和件数

包括验证以检查丢失的数据。如果用户在未输入名称和件数的情况下单击“计算”按钮,则会显示一个消息框。此外,您需要确保在输入任何数据之前不显示摘要;未计算任何项目时,无法计算平均值。您可以在摘要事件过程中检查员工人数,或禁用摘要命令按钮,直到计算出第一个订单

Pieces completed     Price paid per piece for all pieces
      1-199                    .50
    200-399                    .55
    400-599                    .60
    600 or more                .65
代码:

具体问题领域如下:

CS1955不可开票成员“pieceworkForm.calcButton”不能像方法一样使用

CS0266无法将类型“double”隐式转换为“float”。存在显式转换(是否缺少强制转换?)

CS1620参数2必须与'out'关键字一起传递

CS1955无法使用不可开票的成员“pieceworkForm.calcButton” 就像一种方法

您调用的不是方法,而是事件处理程序。您希望执行以下操作:

float pay = calc(pieces);
CS0266无法将类型“double”隐式转换为“float”。明确的 存在转换(您是否缺少演员阵容?)

您需要将实数指定为浮点,以便将它们保存到浮点变量中,因为默认情况下实数是双精度的

private float calc(int pieces)
{
    float pay = 0f;
    switch (pieces)
    {
        case 0:
            pay = 0f;
            break;
        case 1: // 1 to 199
            pay = pieces * 0.5f;
            break;
        case 2: // 200 to 399
            pay = pieces * 0.55f;
            break;
        case 3: // 400 to 599
            pay = pieces * 0.6f;
            break;
        default:
            pay = pieces * 0.65f;
            break;
    }
    return pay;
}
CS1620参数2必须与'out'关键字一起传递

通过引用传递任何值必须使用out关键字显式定义。你可以在网上看到


我不明白你的转换案例陈述。例如,您基本上说的是
如果碎片==2
支付=1.10
。我看不出你是怎么检查这些范围的。超过3的任何数量的块都将进入默认块。
private float calc(int pieces)
{
        float pay = 0;
        switch (pieces)
        {
            case 0:
                pay = 0;
                break;
            case 1: // 1 to 199
                pay = pieces * 0.5;
                break;
            case 2: // 200 to 399
                pay = pieces * 0.55;
                break;
            case 3: // 400 to 599
                pay = pieces * 0.6;
                break;
            default:
                pay = pieces * 0.65;
                break;
        }
        return pay;
}
 if ((int.TryParse(piecesTextBox.Text.Trim(), pieces)))
 {
     calcButton.Enabled = true;
 }
float pay = calc(pieces);
private float calc(int pieces)
{
    float pay = 0f;
    switch (pieces)
    {
        case 0:
            pay = 0f;
            break;
        case 1: // 1 to 199
            pay = pieces * 0.5f;
            break;
        case 2: // 200 to 399
            pay = pieces * 0.55f;
            break;
        case 3: // 400 to 599
            pay = pieces * 0.6f;
            break;
        default:
            pay = pieces * 0.65f;
            break;
    }
    return pay;
}
if ((int.TryParse(piecesTextBox.Text.Trim(), out pieces)))
        {
            calcButton.Enabled = true;
        }