class BaseCaller
{
protected internal void DoBaseSpecificStuff()
{
}
}
class Caller : BaseCaller
{
Reciever.DoStuffWithCaller(this);
}
class Reciever
{
public static DoStuffWithCaller(BaseCaller callerInstance)
{
callerInstance.DoBaseSpecificStuff()
// Extract stuff from BaseCaller after method has been called
}
}
如何确保调用者总是调用Reciever.DoStuffWithCaller并引用自身,如示例中所示,而不是另一个调用者实例,这将是什么方式。
我知道这可以通过使用StackFrame而不是参数,但我正在寻找一个更简单,可维护和更高性能的解决方案。 C#.. Thx ......
编辑:(请参阅注释)在Reciever中,我需要在继续之前访问BaseCaller中的实例特定逻辑,但是希望在不同的派生类(直接调用者)上重用Reciever.DoStuffWithCaller。 BaseCaller上的扩展方法使我在调用者中执行此操作.DoStuffWithCaller()但不解决问题,因为任何其他BaseCaller实例都可以调用DoStuffWithCaller()。从注释看来我应该使用DoStuffWithCaller()方法创建一个中间派生类?