Anonymous Methods

The idea behind anonymous methods it to write methods inline to the code so you don't have to go through the trouble of declaring a formal named method. They are mainly used for small methods that don't require any need for reuse.

Instead of declaring a separate method IsAvailable to find an employee in a list of strings:

class Employee

{

static void Main(string[] args)

{

List<string> Emp = new List<string>();

Emp.Add(“Shriya”);

Emp.Add(“Phaniswara”);

Emp.Add(“NAGAVALLI”);

Emp.Add(“Deepika”);

Emp.Add(“Nair”);

string strEmp = Emp.Find(IsAvailable);

Console.WriteLine(strEmp);

}

public static bool IsAvailable(string name)

{

return name.Equals(“NAGAVALLI”);

}

}

You can declare an anonymous method inline

class Employee

{

static void Main(string[] args)

{

List<string> Emp = new List<string>();

Emp.Add(“Shriya”);

Emp.Add(“Phaniswara”);

Emp.Add(“NAGAVALLI”);

Emp.Add(“Deepika”);

Emp.Add(“Nair”);

String strEmp = Emp.Find(delegate(string name)

{

return name.Equals("Nair");

});

Console.WriteLine(strEmp);

}

}

Lambda Expressions

Lambda Expressions make things even easier by allowing you to avoid the anonymous method

string strEmp = Emp.Find((string name)

=> Emp.Equals("Deepika"));

Console.WriteLine(strEmp);

Or you can simply use :

string strEmp = Emp.Find(n => n.Equals("Deepika"));

Console.WriteLine(strEmp);