Strategy pattern example in C#