You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#报错:调用SetOverallHypertensionLevel时缺少必需形参的实参

解决"没有与方法必需形参对应的实参"错误

嘿,这个问题我见得太多了,本质就是方法调用时的参数不匹配——你定义方法的时候要求必须传两个整数,但调用的时候啥都没传,编译器当然懵了!

错误原因拆解

你定义的SetOverallHypertensionLevel方法明确声明了两个必填的int类型参数:

private void SetOverallHypertensionLevel(int bloodPressureSystolicLevel, int bloodPressureDiastolicLevel)

但你点击事件里的调用代码是:

SetOverallHypertensionLevel();

完全没给方法传它需要的收缩压和舒张压数值,这就导致编译器抛出了你看到的错误。

修复步骤

要解决这个问题,你需要先获取到收缩压和舒张压的数值,再把它们作为参数传给方法。这里假设你是从界面的输入控件(比如TextBox)获取数值,给你一个完整的修复方案:

  1. 从界面获取并验证输入:用int.TryParse来安全转换用户输入,避免非数字内容导致的异常
  2. 传入参数调用方法:确保解析成功后再调用目标方法

修改后的点击事件代码如下:

private void picSubmitVitals_Click(object sender, EventArgs e)
{
    // 替换成你实际项目中对应收缩压、舒张压的输入控件名称
    bool isSystolicValid = int.TryParse(txtSystolicPressure.Text, out int systolicValue);
    bool isDiastolicValid = int.TryParse(txtDiastolicPressure.Text, out int diastolicValue);

    if (isSystolicValid && isDiastolicValid)
    {
        // 参数合法,调用方法
        SetOverallHypertensionLevel(systolicValue, diastolicValue);
    }
    else
    {
        // 提示用户输入有效数值
        MessageBox.Show("请输入有效的血压数值(整数)!");
    }
}

额外注意事项

  • 如果你不是从界面获取参数,而是从其他逻辑里拿到的数值,只要确保调用时传入两个合法的int类型值就行
  • 永远不要跳过输入验证,直接用int.Parse会导致程序在用户输入非数字时崩溃,int.TryParse是更安全的选择
  • 记得替换代码里的控件名称为你项目中实际使用的ID(比如你的收缩压输入框可能叫txtBP_Systolic之类的)

内容的提问来源于stack exchange,提问作者Jen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:02:24