如何将对象强制转换为它实现但不扩展的接口

本文关键字:实现 扩展 接口 对象 转换 | 更新日期: 2023-09-27 17:49:27

我有一个类Script,它有几个属性,但没有方法。然后创建扩展Script的类。理想情况下,脚本可能具有方法Update(),但不会扩展接口IUpdateable(其中指定了方法"Update")。当这个脚本被添加到一个对象中时,这个对象就会意识到,虽然这个对象没有扩展IUpdateable,但它仍然是它的一个实现。然后,它会将脚本添加到具有Update方法的脚本列表中,以便可以对其进行更新。

我的问题集中在两件事上,我如何判断一个类是否实现了一个接口(不扩展它),以及,有了这些知识,我如何将它强制转换为一个可以调用Update()方法的对象。

我应该考虑其他的选择吗?

谢谢

如何将对象强制转换为它实现但不扩展的接口

您可以使用Reflection。

要检查一个类是否实现了一个接口,请尝试下面的命令-

typeof(IMyInterface).IsAssignableFrom(typeof(MyType))
typeof(MyType).GetInterfaces().Contains(typeof(IMyInterface))