events - 为什么除了 += 和 -= 接口不能对它们的事件做任何事情?
问题描述
我制作了一个名为 IDamageable 的接口,并希望能够对自己的事件做更多的事情,除了 += 和 -=,该行Damage?.Invoke(...)
给出了错误 CS0079
public interface IDamageable<TDamagedArgs> where TDamagedArgs : EventArgs
{
HealthSystem HealthSystem { get; set; }
event EventHandler<TDamagedArgs> Damaged;
void OnDamaged(float damage, TDamagedArgs damagedArgs = null) {
HealthSystem.Damage(damage);
Damaged?.Invoke(this, damagedArgs); //the event Damaged can only appear in the left hand side of += or -=
}
}
解决方案
推荐阅读
- scala - 在Scala中通过内部集合元素的索引对集合进行排序
- javascript - 根据反应js中的条件将值从一个函数传递到另一个函数
- ssis - Integration Services 2019 - 执行流程任务 - WindowStyle 被忽略
- python - 使用 pip 安装气流失败
- java - Java SE 版本与官方 JRE 下载版本
- ssis - 在 SQL Server 上创建 SSIS 目录数据库
- ios - iOS:BrightCove 原生播放器在第二次播放相同的视频时抛出 `kBCOVPlaybackSessionLifecycleEventError`
- android - 将部分布局替换为已定义的 xml 布局
- reactjs - useEffect 中的返回何时执行?
- android - java.lang.ClassCastException:com.here.android.mpa.mapping.MapView 无法转换为 com.here.android.mpa.mapping.AndroidXMapFragment