public delegate string ReverseDelegate(string input);
public static void Main()
var input = "Hello World!";
Console.WriteLine($"[Normal Method] Reversed string:{ReverseString(input)}");
public static string ReverseString(string text)
var array = text.ToCharArray();
return new string(array);
public static class StringExtension
public class CustomStringHelper
public CustomStringHelper(ReverseDelegate reverseDelegate)
_reverseDelegate = reverseDelegate;
private readonly ReverseDelegate _reverseDelegate;
public string Reverse(string input)
return _reverseDelegate(input);