我正在寻找一种方法来获取向上转换对象的可能类型。 例如:我有一个 MyControl 类型的控件,它继承了 Control。现在,当 MyControl 类型的对象被向下转换为 Control 时,是否有办法确定它是否是顶级对象类型,或者现在何时获取可以向上转换的类型(在本例中为 MyControl) ? 我希望它向上转换为 MyControl(带反射)并获得带反射的属性。但是我在必须执行此操作的地方不知道 MyControl。
MyControl 是用新的 Visible 实现的。现在,当我调用 control.Visible = true 时,它将调用 Control 的 Visible,但我必须调用 MyControl 的 Visible。
感谢您的帮助。
最佳答案
你也可以使用这个:
MyControl myControl = someControlOfTypeMyControl as MyControl
if(myControl != null)
{
//your stuff
}
使用“as”.net Framework 检查控件是否来自该类型以及是否可以强制转换。.NET Framework 将强制转换并返回 MyControl 类型,否则将返回 null。
所以基本上,它与以前的答案相同,但更干净(恕我直言,你可以有不同的想法)
关于c# - 向上转换一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175067/