Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Es un tipo que representa una referencia a un método
Usos:
Asignar el método que se va a ejecutar cuando suceda cierto evento. Un evento es un mensaje que envía un objeto cuando sucede una acción
MyDelegate.java public delegate void ShowValue(string uuuuu);
class MyDelegate{
//El evento myEvent llamará al método delegado ShowValue
public event ShowValue myEvent;
public void IterateValues(){
for(int i = 0; i < 10; i++){
//Detonamos el evento myEvent que llamará al método delegado (PrintValue, que viene a sustituir a ShowValue)
myEvent(i.ToString());
}
}
}
MainClass.javaclass MainClass{
static void Main(){
MyDelegate myDelegate = new MyDelegate();
//Cada vez que ejecute la función PrintValue, se detonará el evento myEvent
myDelegate.myEvent += PrintValue;
myDelegate.IterateValues();
}
private static void PrintValue(string value){
Console.WriteLine(value);
}
}
Definir métodos anónimos
Estos métodos serán los parámetros de entrada de otros métodos. Por ejemplo, el método Find necesita un método anónimo.
Person p1 = new Person();
p1.name = "Paco";
p1.age = 18;
Person p2 = new Person();
p2.name = "Juan";
p2.age = 38;
Person p3 = new Person();
p3.name = "Raquel";
p3.age = 55;
List<Person> persons = new List<Person>();
persons.Add(p1);
persons.Add(p2);
persons.Add(p3);
Person selectedPerson = persons.Find(delegate (Person p) { return p.age == 38; });
Console.WriteLine(selectedPerson.name);
También podíamos haber usado una expresión Lambda
Person selectedPerson = persons.Find( p => p.age == 38);