我的第一堂课就像
public abstract class A
{
protected event Action<A> onCompleted;
public void CompleteExecution()
{
// doing something...
onCompleted?.Invoke(this);
}
}
还有另一个类
public class B : A
{
private Action<B> _callback;
public void Initialize(Action<B> callback)
{
_callback = callback;
}
public void Execute()
{
onCompleted += (Action<A>)callback;
// doing something specific.
}
}
然后我将 B 与类似的东西一起使用:
public class Executor
{
private B _inst;
public Executor
{
_inst = new B();
_inst.Initialize(Callback);
}
public void Execute()
{
_inst.Execute();
}
public void Finalize()
{
_inst.CompleteExecution();
}
private void Callback(B inst)
{
// completed !!!
}
}
我认为如果参数相关,我可以强制转换 Action,但我在
处收到无效的强制转换异常onCompleted += (Action<A>)callback;
在B类的Execute方法中。
我通过将行替换为
解决了这个问题onCompleted += _ => callback?.Invoke(this);
但是我觉得很丑。
有没有更好的方法来实现演员阵容?
有没有更好的方法来实现演员阵容?
不。
Action<T>
是