c# - 向上转换一个对象

标签 c# .net reflection casting upcasting

我正在寻找一种方法来获取向上转换对象的可能类型。 例如:我有一个 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/

相关文章:

java - 如何通过反射将字段值设置为普通对象

c# - 表示 C# 中某些类型的对象

c# - 正则表达式接受部分匹配

c# - 如何将参数传递给依赖项通过 IoC 容器连接的类?

c# - ASP.NET - 扩展 gridview 以允许过滤、排序、分页等

C# "painless"调用带有参数的存储过程的方法?

java - 将 Double 转换为 Int 时的不同答案 - Java 与 .Net

c# - C#中通过枚举属性调用方法

c# - 转换表达式树

c# - 使用 COM 将数组从 C# 返回到经典 ASP