/* * C# Program to Implement Principles of Delegates */ using System; class Program { delegate string UppercaseDelegate(string input); static string UppercaseFirst(string input) { char[] buffer = input.ToCharArray(); buffer[0] = char.ToUpper(buffer[0]); return new string(buffer); } static string UppercaseLast(string input) { char[] buffer = input.ToCharArray(); buffer[buffer.Length - 1] = char.ToUpper(buffer[buffer.Length - 1]); return new string(buffer); } static string UppercaseAll(string input) { return input.ToUpper(); } static void WriteOutput(string input, UppercaseDelegate del) { Console.WriteLine("Input String: {0}", input); Console.WriteLine("Output String: {0}", del(input)); } static void Main() { WriteOutput("tom ", new UppercaseDelegate(UppercaseFirst)); WriteOutput("tom", new UppercaseDelegate(UppercaseLast)); WriteOutput("tom", new UppercaseDelegate(UppercaseAll)); Console.ReadLine(); } } /* Input String: tom Output String: Tom Input String: tom Output String: toM Input String: tom Output String: TOM