如何将对象强制转换为它实现但不扩展的接口
本文关键字:实现 扩展 接口 对象 转换 | 更新日期: 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))