Jen
Jen

Reputation: 27

C# - No argument for required formal parameter?

The error I receive is as follows: There is no argument given that corresponds to the required formal parameter 'bloodPressureSystolicLevel' of 'VitalsForm.SetOverallHypertensionLevel(int, int)'. The error actually appears on the line where I call the method, SetOverallHypertensionLevel();

Calling the method:

    private void picSubmitVitals_Click(object sender, EventArgs e)
    {

        SetOverallHypertensionLevel();
     }

Method:

    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;
                }

Why isn't it recognizing the use of the parameters? Any help is appreciated.

Upvotes: 0

Views: 544

Answers (2)

mjwills
mjwills

Reputation: 23819

private void SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)
{
    bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
    bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);

should likely be converted to:

private void SetOverallHypertensionLevel()
{
    var bloodPressureSystolicLevel = Convert.ToInt32(txtSystolic);
    var bloodPressureDiastolicLevel = Convert.ToInt32(txtDiastolic);

since it looks like you want variables not parameters.

If you do that your SetOverallHypertensionLevel(); call will work.

Upvotes: 2

egnomerator
egnomerator

Reputation: 1105

When you call your method

SetOverallHypertensionLevel();

you need to pass in the required arguments for the parameters defined in your method signature.

SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)

So an example of a correct call of that method would be:

SetOverallHypertensionLevel(1,1);

You just need to provide the int values required by your method.

Upvotes: 1

Related Questions