最近在教学生时,学员老理解不清方法的隐藏和重写,后来想了想,终于能用反射能让学生明白这两者的区别!
看一下例子:
隐藏:
1
class Class1
2
2
类Class2中的Method()方法会隐藏掉Class1的Method()。
重写:
其实引用下面代码即反射就能来看出方法的隐藏还是重写:
1
MemberInfo[] MI=typeof(Class2).GetMethods ();
2
foreach (MemberInfo mi in MI)
3
}
我们可以在上面的两种状态下来看一下结果,如下2
3
隐藏方法如下图:
重写的方法如下图:
可见隐藏后是两个Method方法,重写后是一个Method方法。