C#-所需的形式参数没有参数?
我收到的错误如下:没有给出与“VitalsForm.setOverall高血压水平(int,int)”的必需形式参数“bloodPressureSystolicLevel”对应的参数。错误实际上出现在我调用方法SetOverallHypertensionLevel()的行上 调用该方法:C#-所需的形式参数没有参数?,c#,C#,我收到的错误如下:没有给出与“VitalsForm.setOverall高血压水平(int,int)”的必需形式参数“bloodPressureSystolicLevel”对应的参数。错误实际上出现在我调用方法SetOverallHypertensionLevel()的行上 调用该方法: private void picSubmitVitals_Click(object sender, EventArgs e) { SetOverallHypertensionL
private void picSubmitVitals_Click(object sender, EventArgs e)
{
SetOverallHypertensionLevel();
}
方法:
private void SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
{
bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);
if ((bloodPressureSystolicLevel / 200) > (bloodPressureDiastolicLevel / 133))
{
if (bloodPressureSystolicLevel >= 160)
{
lblHyperStage2.ForeColor = colorSchemeIssue;
}
else if (bloodPressureSystolicLevel >= 140)
{
lblHyperStage1.ForeColor = colorSchemeIssue;
}
else if (bloodPressureSystolicLevel >= 120)
{
lblHyperPre.ForeColor = colorSchemeWarning;
}
else
{
lblHyperNormal.ForeColor = colorSchemeNormal;
}
}
else
{
if (bloodPressureDiastolicLevel >= 100)
{
lblHyperStage2.ForeColor = colorSchemeIssue;
}
else if (bloodPressureDiastolicLevel >= 90)
{
lblHyperStage1.ForeColor = colorSchemeIssue;
}
else if (bloodPressureSystolicLevel >= 80)
{
lblHyperPre.ForeColor = colorSchemeWarning;
}
else
{
lblHyperNormal.ForeColor = colorSchemeNormal;
}
为什么它不能识别参数的使用?感谢您的帮助。当您调用您的方法时
SetOverallHypertensionLevel();
您需要为方法签名中定义的参数传入必需的参数
SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
因此,正确调用该方法的示例如下:
SetOverallHypertensionLevel(1,1);
您只需提供方法所需的
int
值。调用方法时
SetOverallHypertensionLevel();
private void SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
{
bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);
您需要为方法签名中定义的参数传入必需的参数
SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
因此,正确调用该方法的示例如下:
SetOverallHypertensionLevel(1,1);
您只需要提供方法所需的int
值
private void SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
{
bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);
可能应转换为:
private void SetOverallHypertensionLevel()
{
var bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
var bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);
因为看起来您想要的是变量而不是参数
如果这样做,设置整体高血压水平()代码>呼叫将工作
可能应转换为:
private void SetOverallHypertensionLevel()
{
var bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
var bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);
因为看起来您想要的是变量而不是参数
如果这样做,设置整体高血压水平()代码>调用将起作用。能否显示调用此方法的代码?如何调用设置总体高血压水平
?很可能没有参数。在你的问题中,如果你说“'VitalsForm.SetOverallHypertensionLevel(int,int)”,如果这是你用来调用该方法的代码,那么看起来你不是在传递值,而是把typeint
放在int
类型的变量下面,我在上面添加了它!非常感谢。你能举个例子吗?很明显,我对这个很陌生。你能告诉我你在哪里调用这个方法的代码吗?你是如何调用SetOverallHypertensionLevel
?很可能没有参数。在你的问题中,如果你说“'VitalsForm.SetOverallHypertensionLevel(int,int)”,如果这是你用来调用该方法的代码,那么看起来你不是在传递值,而是把typeint
放在int
类型的变量下面,我在上面添加了它!非常感谢。你能举个例子吗?显然,我对这一点很陌生。在这种情况下,值将根据用户输入而变化,因此我无法硬编码整数(请参阅上面的Convert和If/else If语句)。如果我使用的是设定的整体高血压水平(int血压系统水平,int血压系统水平);它不会起作用,或者如果我尝试设置整体高血压水平(血压低,血压低);或者,从方法签名中删除这两个参数,因为它们的值填充在方法的前两行中(无论如何都会覆盖传入的值)。@hatchet,这会消除参数错误,但填充的值会遇到未处理的异常。mjwills的答案是正确的答案。如果您遵循这一点,那么下一个可能的问题是txtdescholic
和txtdescholica
是否在其他地方正确声明和填充,但是由于您没有包含该代码,所以很难说。那将是一个单独的问题。@mjwills,这个方法仍然不起作用,所以它没有解决我的问题。不过,我已经做出了这些改变。hatchet,我确实在其他地方声明和填充了这些,所以我将致力于将它们迁移到更广泛的类中。非常感谢。在这种情况下,值将根据用户输入而变化,因此我无法硬编码整数(请参阅上面的Convert和If/else If语句)。如果我使用的是设定的整体高血压水平(int血压系统水平,int血压系统水平);它不会起作用,或者如果我尝试设置整体高血压水平(血压低,血压低);或者,从方法签名中删除这两个参数,因为它们的值填充在方法的前两行中(无论如何都会覆盖传入的值)。@hatchet,这会消除参数错误,但填充的值会遇到未处理的异常。mjwills的答案是正确的答案。如果您遵循这一点,那么下一个可能的问题是txtdescholic
和txtdescholica
是否在其他地方正确声明和填充,但是由于您没有包含该代码,所以很难说。那将是一个单独的问题。@mjwills,这个方法仍然不起作用,所以它没有解决我的问题。不过,我已经做出了这些改变。hatchet,我确实在其他地方声明和填充了这些,所以我将致力于将它们迁移到更广泛的类中。非常感谢。这确实可以消除调用中的错误,但是我的if语句不起作用。@Jen-您的if语句可能无法按预期工作,因为您正在将int除以int。这将产生截断的int结果。除以200.0
和133.0
,这将强制计算为浮点,因此更具可比性。@Jen StackOverflow的工作方式是,你应该在每篇文章中问一个问题。回答该问题后(为什么不能识别参数的使用?
),如果您有不同的问题(如未处理的异常),您应该问一个单独的问题。这确实有助于消除通话中的错误,但是我的if语句不起作用。@Jen-您的if语句可能无法按预期工作,因为您正在将一个int除以一个int。这将产生截断的int结果。除以200.0
和133.0
,这将强制计算为浮点,因此更具可比性。@Jen StackOverflow的工作方式是,你应该在每篇文章中问一个问题。一旦回答了这个问题(