22 messaggi dal 18 maggio 2007
Salve,
sto cercando di trovare un modo per associare la funzione a un delegato in maniera dinamica.
Mi spiego:
questa e' la procedura classica

public delegate bool Check(Studente studente);
...
Check check2 = isMaggiorenne; // il delegato punta alla funzione isMaggiorenne

invece io vorrei passare la funzione isMaggiorenne in una stringa, perche' ad esempio potrei volerla mettere come commandargument in un bottone.
esempio:
string nomeFunzione = "isMaggiorenne";
Check check2 = nomeFunzione; // <-- errore di compilazione

Come posso fare?

"Quanto piu ci innalziamo, tanto piu piccoli sembriamo a quelli che non possono volare."
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
dovresti usare la reflection per ottenere un riferimento al metodo in maniera dinamica, usando il nome che è memorizzato nella stringa.

Leggi questo articolo su MSDN:
http://msdn.microsoft.com/it-it/library/ms228976(v=vs.110).aspx

In alternativa, se vuoi una soluzione più immediata, puoi provare a farti un Dictionary<string, Check>, a cui aggiungerai i nomi come chiavi, e delle lambda come valori. Ecco un esempio:
https://dotnetfiddle.net/yjtptb

ciao,
Moreno
Modificato da BrightSoul il 03 novembre 2014 20.56 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.