---
title: "Multicast Delegate in C#"  
description: "Such type’s delegates which hold and invoke multiple methods are known as multicast delegates. But simple delegates invoke only one method. Multicast"  
author: "Amit Singh"  
published: 2011-05-01  
updated: 2014-09-18  
canonical: https://www.mindstick.com/blog/150/multicast-delegate-in-c-sharp  
category: "c#"  
tags: ["c#"]  
reading_time: 1 minute  

---

# Multicast Delegate in C#

Such type’s delegates which hold and invoke [multiple](https://www.mindstick.com/blog/12797/iowa-is-expected-to-see-heavy-growth-in-multiple-sectors) [methods](https://www.mindstick.com/articles/13060/runny-nose-remedy-methods-that-work-best) are [known as](https://answers.mindstick.com/qa/35703/ricky-ponting-is-also-known-as-what) [multicast](https://www.mindstick.com/forum/33936/use-of-multicast-delegate-in-c-sharp) delegates. But [simple](https://yourviews.mindstick.com/story/1469/5-simple-ways-to-stay-fit-amp-healthy) delegates invoke only one method. Multicast delegates must satisfy the following [condition](https://www.mindstick.com/forum/12711/select-query-with-and-condition):

· The return type of the [delegate](https://www.mindstick.com/articles/777/delegate-and-event-in-c-sharp) must void.

· None of the [parameters](https://www.mindstick.com/articles/87/passing-parameters-in-c-sharp) of the delegate type can be [declared as](https://www.mindstick.com/interview/2711/what-if-the-main-method-is-declared-as-private) [output](https://www.mindstick.com/forum/161319/how-does-the-print-function-handle-output-in-python) parameters, using out keywords.

\

##### For Example:

\

```
delegate void Multidelegate();    class Program    {        public static void Main()        {            Multidelegate mshow1 = new Multidelegate(Class1.show1);            Multidelegate mshow2 = new Multidelegate(Class1.show2);            Multidelegate mshow3 = mshow1 - mshow2;            Multidelegate mshow4 = mshow2 - mshow1;            Multidelegate mshow5 = mshow3 - mshow2;            Multidelegate mshow6= mshow5 - mshow4;             mshow3();            mshow4();            mshow5();            mshow6();            Console.ReadLine();        }    }        class Class1    {        static public void show1()        {            Console.WriteLine("India");        }        static public void show2()        {            Console.WriteLine("England");        }    }
```

##### \

##### Output:

India

England

India

India

---

Original Source: https://www.mindstick.com/blog/150/multicast-delegate-in-c-sharp

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
