Running the program

Now, let's take a look at the effects. For this, launch the program in your browser. Click on the Summarize button. The results are shown in Figure 4.4.3:

Figure 4.4.3: The results of running our program for this project

As you can see, 4+5=9, 4/5=0.8, and 4*5=20. So, it's working as expected. The public delegate void Summarize<T>(T x, T y); line is a single, generic delegate and, because it has T there and not a fixed data type such as integer or double, it can operate on different data types.

Now, if you take your Default.aspx.cs page and search for all occurrences of double and replace them with int, seven occurrences will be replaced. If you run the code again, you'll see that it works equally well. Just to illustrate the point further, replace int with decimal and again seven occurrences are replaced. Now, it will be operating in decimal types and, if you click on the Summarize button once more, you'll see that it works equally well.

So, there you have a generic delegate. Remember, with a single button click, you can basically invoke a whole list of functions by chaining them together through the s delegate, which is of the Summarize type, which is generic so that it can operate on different data types equally well.