1.リヒター変革文法:
1)サブクラスは親クラスに割り当てることができます。引数として親クラスを配置する必要がある場合、我々はサブクラスの代わりに与えることができます
人物P =新しい学生();
親クラスは、サブクラスオブジェクトがロードされた場合2)、これは親サブクラスオブジェクトに変換することができます。
学生STU =(学生)P
そして2.isとして
1)である:変換が成功することができれば、変換の種類を示すtrueを返し、そうでない場合はfalseを返します。
人物P =新しい学生();
(pは教師である)場合
、{
学生STU =(学生)、P。
stu.StudentPrint();
}
他
{
Console.WriteLineを( "转换失败")。
}
2)のように:オブジェクトは、対応するリターンに変換することができれば、それ以外の場合はNULLを返し、変換の種類を示します。
教師茶=教師としてのp;
もし(茶== NULL)
{
Console.WriteLineを( "转换失败");
}
他
{
tea.TeacherPrint()。
}
ます。https://www.cnblogs.com/zwj-199306231519/p/11027038.htmlで再現