C# TemplateMethod