// CODE BELOW CANNOT BE MODIFIED, TREAT IT AS A 3TH PARTY LIBRARY public interface IDoors { void PullHandle(); } class NormalDoors : IDoors { public void PullHandle() { Console.WriteLine("Normal doors open"); } } public static class Doorman { public static void Open(IDoors doors) { doors.PullHandle(); } } public sealed class FancyDoors { public void PressButton() { Console.WriteLine("Fancy doors are open"); } } //BELOW YOU CAN ADD CODE TO SOLVE THE PROBLEM public static class Doors { public static void Main() { var myNormalDoors = new NormalDoors(); var myFancyDoors = new FancyDoors(); // This works, since normal doors implement IDoors Doorman.Open(myNormalDoors); //Doesn't work, because Fancy Doors are sealed and do not implement IDoors. How to bypass that problem? Doorman.Open(myFancyDoors ); } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)