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

时间:2014-03-10 07:48:52

标签: c# class interface scripting casting

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

我的问题围绕两件事,我如何判断一个类是否实现了一个接口(没有扩展它),并且,凭借这些知识,我如何将它转换为Update()方法可以是的对象调用。

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

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用反射。

要检查某个类是否实现了接口,请尝试以下 -

typeof(IMyInterface).IsAssignableFrom(typeof(MyType))

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