Reader Niall asked me why the following code compiles but produces an exception at runtime: class Base {} class Derived : Base {} class Castable { public static explicit operator Base() { return new Base(); } } // ... Derived d = (Derived)(new Castable());
Read More...