泛型委托,C# 3.5
本文关键字:泛型 | 更新日期: 2023-09-27 18:34:23
我有多个具有通用基本类型的类。我想要一个将基类型的任何子类作为参数的委托。我把它想象成这样,但这不起作用:
private delegate void ActionDelegate(BaseAction action);
class ChildAction : BaseAction
{
}
public static class SomeOtherClass
{
public void ProcessChildAction(ChildAction childAction)
{
}
public void Main()
{
ChildAction childAction = new ChildAction();
ActionDelegate actionDelegate = ProcessChildAction;
actionDelegate(childAction);
}
}
我试过这个:
private delegate void ActionDelegate<T>(T action);
但这似乎可以让任何类型的类通过,我只想要BaseAction
的任何子类.即便如此,当我这样做时,我似乎无法编译它,所以我不确定这是否是正确的方法。
另外,我使用的是 Unity,所以我仅限于 C# 3.5。
使用约束:
private delegate void ActionDelegate<T>(T action) where T : BaseAction;