C# Method Overwriting