Как создать делегат для метода экземпляра с нулевой целью?
Я заметил, что у класса Delegate есть свойство Target, которое (предположительно) возвращает экземпляр, на котором будет выполняться метод делегата. Я хочу сделать что-то вроде этого:
void PossiblyExecuteDelegate(Action<int> method)
{
if (method.Target == null)
{
// delegate instance target is null
// do something
}
else
{
method(10);
// do something else
}
}
При звонке я хочу сделать что-то вроде:
class A
{
void Method(int a) {}
static void Main(string[] args)
{
A a = null;
Action<int> action = a.Method;
PossiblyExecuteDelegate(action);
}
}
Но я получаю ArgumentException (делегат методу экземпляра не может иметь нулевое «this»), когда я пытаюсь создать делегат. Возможно ли то, что я хочу сделать, и как я могу это сделать?