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

如何在C#委托中忽略不需要的参数?

解决方案

完全可以实现,不用修改原委托定义,也不用给AddArmor加无用参数,用Lambda表达式做个简单适配就行:

直接用Lambda表达式订阅

把订阅代码改成这样,用Lambda接收委托的参数但直接忽略,调用无参数的AddArmor:

health.onKill += (_, __) => AddArmor();

这里的_和__是C#里用来标记“不需要用到的参数”的惯例写法,也可以随便写个变量名(比如x, y),但下划线更直观。

(可选)封装适配方法

要是需要多次订阅这个逻辑,也可以写个适配层方法,再订阅这个方法:

// 适配方法,接收委托要求的参数,内部调用无参数的AddArmor
private void AddArmorAdapter(string unused1, string unused2)
{
    AddArmor();
}

// 订阅时用这个适配方法
health.onKill += AddArmorAdapter;

这两种方式都能满足你的需求:既保留原委托对其他脚本的参数传递能力,又能让无参数的AddArmor方法正常订阅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:38:26