我想创建一个通用委托。它将委托具有泛型类型作为参数的函数。
例如:我有一个界面:
public interface IProblemState<T> : IComparable<IProblemState<T>>, IEquatable<IProblemState<T>>
where T : IEquatable<T>
{}
我有两个不同的班级
public class Class1 : IEquatable<Class1>
{ }
public class Class2 : **IProblemState<Class1>**
{ }
在我有一个代表之后
public delegate SortedSet<IProblemState<T>> ExpanderDelegate<T>(IProblemState<T> currentState)
where T : IEquatable<T>;
我不能使用具有派生类参数(类 2 的实例)的函数创建委托。
例如 :
SortedSet<**Class2**> expander(**Class2** currentState)
{}
ExpanderDelegate<Class2> expanderDel = new ExpanderDelegate(**expander**);
当我想创建委托时,出现以下错误。
'expander' 没有重载匹配委托 'ExpanderDelegate'
我想将此委托与所有具有派生参数的函数一起使用。
用C#可以吗?
谢谢。