Подтвердить что ты не робот

Как я могу получить вызывающие методы в С#

Возможный дубликат:
Как найти метод, который вызвал текущий метод?

Мне нужен способ узнать имя вызывающих методов в С#.

Например:

private void doSomething()
{
// I need to know who is calling me? (method1 or method2).

// do something pursuant to who is calling you?
} 

private void method1()
{
 doSomething();
}

private void method2()
{
 doSomething();
}
4b9b3361

Ответ 2

Ты почти наверняка не хочешь этого делать. Вызывающий не должен знать, кто его вызывает. Вместо этого разница между двумя вызывающими абонентами должна быть абстрагирована в параметр и передаваться в вызываемый метод:

private void doSomething(bool doItThisWay)
{
    if (doItThisWay)
    {
        // Do it one way
    }
    else
    {
        // Do it the other way
    }
}

private void method1()
{
    doSomething(true);
}

private void method2()
{
    doSomething(false);
}

Таким образом, если вы добавите метод3, он может либо сделать что-то так или иначе, и doSomething не заботится.