请问com开发中的接口与c#中的借口是一个概念吗?
如题,在com开发中,借口都是以I开头的,这个借口与c#中的接口应该不是一个概念吧。我也尝试在c++中写一个简单的com,好像在com工程中,声明一个类,再用c#的调用的时候就自动变成了以I为开头的接口?
在com开发中,如arcgis engine,有很多接口转换的语句,比如
IGlobeLayer pGlobeLayer;
p=pGlobeLayer as ILayer
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???
请大家帮帮我 --------------------编程问答-------------------- 所有接口都是一个概念,即契约...
至于I打头只是一种命名规范,而那些转换是属于继承的概念...去好好看看面向对象入门... --------------------编程问答--------------------
转换过程中对象不会发生任何变化,只是执行者主观的认为其类型发生了改变... --------------------编程问答--------------------
这样说有点歧义...应该说执行者主观的认为其改变了遵守的契约... --------------------编程问答-------------------- 来学习了 --------------------编程问答-------------------- 接口是把隐式公共方法和属性组合起来,一封装特定功能的一个集合。 --------------------编程问答-------------------- I打头就是Inte易做图ce接口的意思,就像vc里喜欢用C打头写一个类一样,你也不遵守
c#里也可以用接口
public inte易做图ce IMODULE_BASE_OPERATIONS
{
void New_Empty();
...
}
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???
mei you
--------------------编程问答-------------------- 那么在写com组件的时候,那些接口是如何定义的? --------------------编程问答--------------------
正解,接口就是表示实现某个功能的方法,但是没有具体实现。 --------------------编程问答-------------------- 有写过com组件的吗?在com工程中,接口是类似于c#中 Inte易做图ce 这种方式定义的吗?
还是只是一个public类? --------------------编程问答-------------------- 接口差不多就这意思 --------------------编程问答-------------------- 不一样 不是一回事
--------------------编程问答--------------------
你这段代码中,ILayer 继承自IGlobeLayer,也就是说 IGlobeLayer的类型用ILayer来实现!
补充:.NET技术 , C#