OOP interview questions C#