如何确保将调用实例传递给参数

时间:2015-09-23 11:54:02

标签: c# parameters parameter-passing

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()方法创建一个中间派生类?

0 个答案:

没有答案