Delegate C# Tutorial

using System;
public delegate void DelegateClass(int valCount, ref int refCount);
public class Counter {
    public static void Main() {
        DelegateClass del = (DelegateClass)AddOne + (DelegateClass)AddTwo + (DelegateClass)AddOne;
        int valCount = 0;
        int refCount = 0;
        del(valCount, ref refCount);
        Console.WriteLine("Value count = {0}", valCount); // 0
        Console.WriteLine("Reference count = {0}",refCount); // 4
    }
    public static void AddOne(int valCount,ref int refCount) {
        ++valCount;
        ++refCount;
    }
    public static void AddTwo(int valCount,ref int refCount) {
        valCount += 2;
        refCount += 2;
    }
}