读书人

检查两个接口类型是否兼容,该如何解决

发布时间: 2012-03-22 17:43:57 作者: rapoo

检查两个接口类型是否兼容
以下例子中 m_Feedback是一个实例化的接口,INewPolygonFeedback是一个接口类型
在C#中, if (m_Feedback is INewPolygonFeedback) {},很Easy检测出两个接口是否兼容
在Delphi中,则编译不过去,似乎D的is只支持类的检测,报"Operator not applicable the operand type",请高人解惑:)


[解决办法]
用 “as” 试试
[解决办法]
你的问法,看起来很奇怪。特别是“在C#中, if (m_Feedback is INewPolygonFeedback) {},很Easy检测出两个接口是否兼容”
猜测:你只是想知道某个对象是否实现了INewPolygonFeedback而已。不是所谓的“两个接口是否兼容”。

如果是这样,直接调用GetInterface(接口ID, IObj)返回是否成功即可。

[解决办法]
if (m_Feedback is INewPolygonFeedback) {}中m_Feedback是一个接口,INewPolygonFeedback也是一个接口
-----
依据所举例子的进行类比。m_Feedback应该是一个“接口对象”。就我所理解的,“接口”是一个类型,实现它的,称做“接口对象”,这样表达上面不会混乱。

如果判断某某“接口对象”是否实现某接口,可以这样:
I_Instance.QueryInterface(接口ID, IObj)
具体用法,参考帮助

读书人网 >.NET

热点推荐