I understand type conversion. For example:
class Person { } class Student : Person { }
Implicit conversion:
Person p = new Student();
Explicit conversion:
Person p = new Person(); p = (Student)p;
In this case, the compiler allows the conversion, but throws an exception when executed.
So when is explicit type conversion allowed in C # and how can this be demonstrated with this example?