C#编程错误问题?
我上的是一门基础C#programming课程,在做以下练习之前,我一直在理解所有内容。如果有人能检查我的代码并帮我解决问题,那就太好了。我在这段代码中得到了三个不同的错误(CS1620、CS0266和CS1955)。我有一个同学试图帮我,但结果不太好 以下是练习提示: 计件工按件计酬。产出更多的工人通常会得到更高的工资 表单:使用文本框获取人员姓名和完成的件数。包括“计算”命令按钮以显示赚取的美元金额。您需要一个摘要按钮来显示总件数、总工资和人均平均工资。“清除”按钮应清除当前员工的姓名和件数 包括验证以检查丢失的数据。如果用户在未输入名称和件数的情况下单击“计算”按钮,则会显示一个消息框。此外,您需要确保在输入任何数据之前不显示摘要;未计算任何项目时,无法计算平均值。您可以在摘要事件过程中检查员工人数,或禁用摘要命令按钮,直到计算出第一个订单C#编程错误问题?,c#,C#,我上的是一门基础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;
}