亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查兩個接口類型是否兼容?

檢查兩個接口類型是否兼容?

搖曳的薔薇 2018-10-23 14:10:35
檢查兩個接口類型是否兼容
查看完整描述

1 回答

?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

在C#中, if (m_Feedback is INewPolygonFeedback) {},很Easy檢測出兩個接口是否兼容
在Delphi中,則編譯不過去,似乎D的is只支持類的檢測,報"Operator not applicable the operand type",請高人解惑:)
用“as” 試試
as是接口之間的強制轉換,根據異常來判斷類型?不到萬不得已不想用這種方式:)
你的問法,看起來很奇怪。特別是“在C#中, if (m_Feedback is INewPolygonFeedback) {},很Easy檢測出兩個接口是否兼容”
猜測:你只是想知道某個對象是否實現了INewPolygonFeedback而已。不是所謂的“兩個接口是否兼容”。
如果是這樣,直接調用GetInterface(接口ID, IObj)返回是否成功即可。
其實問的就是類似于(btn1 is TButton)的東西,btn1是一個類實例,TButton是一個類。
現在把兩者都換成了接口,if (m_Feedback is INewPolygonFeedback) {}中m_Feedback是一個接口,INewPolygonFeedback也是一個接口,其中實現m_Feedback的類是實現INewPolygonFeedback的類的父類,這種問題應該在COM編程中經常遇到的,象上例 就是使用arcEngine寫一個小程序時的問題,雖然繞了點彎也解決掉了,但心里始終有些別扭。還望各位先生達人不吝解惑。
-----依據所舉例子的進行類比。m_Feedback應該是一個“接口對象”。就我所理解的,“接口”是一個類型,實現它的,稱做“接口對象”,這樣表達上面不會混亂。
I_Instance.QueryInterface(接口ID, IObj)
if (m_Feedback is INewPolygonFeedback) {}中m_Feedback是一個接口,INewPolygonFeedback也是一個接口
具體用法,參考幫助



查看完整回答
反對 回復 2018-11-07
  • 1 回答
  • 0 關注
  • 857 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號