SOLID: The Liskov Substitution Principle (LSP) in C#