Sono confuso perché questo compila:Perché un delegato senza parametri viene compilato?
private delegate int MyDelegate(int p1, int p2);
private void testDelegate()
{
MyDelegate imp = delegate
{
return 1;
};
}
MyDelegate dovrebbe essere un puntatore a un metodo che prende due parametri int e restituisce un int, giusto? Perché sono autorizzato ad assegnare un metodo che non richiede parametri?
interessante notare che questi non compila (si lamenta i disallineamenti di firma, come mi aspetto)
private void testDelegate()
{
// Missing param
MyDelegate imp = delegate(int p1)
{
return 1;
};
// Wrong return type
MyDelegate imp2 = delegate(int p1, int p2)
{
return "String";
};
}
Grazie per qualsiasi aiuto!
Ryan
Grazie mille per la risposta; ha senso Ho contrassegnato quello sopra come "corretto" semplicemente perché è arrivato lì per primo. Grazie! – Ryan