Delegates and Anonymous methods in C#

An anonymous method is a method without any name. To understand better, a normal method is one which will have a name, return type optionally arguments and an access modifier. So, an anonymous method in C# 2.0 is a feature to have methods without name. Anonymous methods can be used in the place where there is a use of a delegate.

delegate void DelegateTest(string n);
protected void Page_Load(object sender, EventArgs e)
{
   DelegateTest obj = delegate(string Name)
   {
      Response.Write(“Name is ” + Name + “<br>”);
   };
   obj(“Saad Khan”);
}

When an anonymous method is declared without parenthesis, it can be assigned to a delegate with any signature.

delegate void DelegateTest(string n);
protected void Page_Load(object sender, EventArgs e)
{
   DelegateTest obj = delegate
   {
      Response.Write(“Name is Saad Khan”);
   };
   obj(“some text”);
}

Note that, if a variable is declared outside the anonymous method it can be accessed inside the anonymous method. And declaring variable(s) inside the anonymous method is not valid.

Advertisements

About Saad Khan

Saad is an ASP.NET developer with 4 years of experience, and has also made a number of contributions to the Sitefinity marketplace and community. He loves to explore new code, and create innovative tools and procedures while exploring new approaches in his work with Sitefinity and MVC. As an experienced .NET developer, he frequents both Telerik and Microsoft technologies. In his spare time, Saad is an avid gamer and movie fanatic, and also experiments with new and interesting tools on the Microsoft platform.​​

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: