C#-所需的形式参数没有参数?

C#-所需的形式参数没有参数?,c#,C#,我收到的错误如下:没有给出与“VitalsForm.setOverall高血压水平(int,int)”的必需形式参数“bloodPressureSystolicLevel”对应的参数。错误实际上出现在我调用方法SetOverallHypertensionLevel()的行上 调用该方法: private void picSubmitVitals_Click(object sender, EventArgs e) { SetOverallHypertensionL

我收到的错误如下:没有给出与“VitalsForm.setOverall高血压水平(int,int)”的必需形式参数“bloodPressureSystolicLevel”对应的参数。错误实际上出现在我调用方法SetOverallHypertensionLevel()的行上

调用该方法:

    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)”,如果这是你用来调用该方法的代码,那么看起来你不是在传递值,而是把type
int
放在
int
类型的变量下面,我在上面添加了它!非常感谢。你能举个例子吗?很明显,我对这个很陌生。你能告诉我你在哪里调用这个方法的代码吗?你是如何调用
SetOverallHypertensionLevel
?很可能没有参数。在你的问题中,如果你说“'VitalsForm.SetOverallHypertensionLevel(int,int)”,如果这是你用来调用该方法的代码,那么看起来你不是在传递值,而是把type
int
放在
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的工作方式是,你应该在每篇文章中问一个问题。一旦回答了这个问题(