Ho notato che la classe Delegate ha una proprietà Target, che (presumibilmente) restituisce l'istanza su cui verrà eseguito il metodo delegato. Voglio fare qualcosa di simile:Come creare un delegato su un metodo di istanza con una destinazione nullo?
void PossiblyExecuteDelegate(Action<int> method)
{
if (method.Target == null)
{
// delegate instance target is null
// do something
}
else
{
method(10);
// do something else
}
}
Quando si chiama, voglio fare qualcosa di simile:
class A
{
void Method(int a) {}
static void Main(string[] args)
{
A a = null;
Action<int> action = a.Method;
PossiblyExecuteDelegate(action);
}
}
ma ottengo un ArgumentException (delegato a un metodo di istanza non può avere un null 'questo ') quando provo a costruire il delegato. È quello che voglio fare e come posso farlo?
Perché vuoi farlo? Hai istanze che sono null? –