Код: Выделить всё
mB
в коде:
class A
{
B b;
void mA()
{
b.mB();
}
}
class B
{
public void mB()
{
mC();
}
D d;
void mC()
{
d.mD();
}
}
class C
{
public virtual void mD() { }
}
class D : C
{
public override void mD()
{
A a = // Somehow get the A object that executed this
}
}
Теперь, когда вы знаете очень запутанную ситуацию, не могли бы вы рассказать мне, как я бы получил объект A от md ? (Я имею в виду объект, а не класс, а не метод).
Просто чтобы быть уверенным: объект означает экземпляр класса, а не функцию, содержащуюся в классе, а не просто имя этой функции. Таким образом, это должно быть решено каким -то другим способом, я предполагаю, что через некоторые рефлексии махинации, с которыми я в порядке. Я просто снова наткнулся на этот вопрос и стал любопытным относительно того, на самом деле это даже возможно,
Я знаю, что StackTrace содержит информацию о предыдущих вызовах методов, но я не могу найти какого -либо показания фактического объекта, связанного с ними в определении стекафрама
Я угадываю, что это невозможно, но если я хочу, чтобы я знал.>
Подробнее здесь: https://stackoverflow.com/questions/733 ... he-current