当前位置:编程学习 > C#/ASP.NET >>

请问com开发中的接口与c#中的借口是一个概念吗?

如题,在com开发中,借口都是以I开头的,这个借口与c#中的接口应该不是一个概念吧。
我也尝试在c++中写一个简单的com,好像在com工程中,声明一个类,再用c#的调用的时候就自动变成了以I为开头的接口?
在com开发中,如arcgis engine,有很多接口转换的语句,比如
IGlobeLayer pGlobeLayer;
p=pGlobeLayer as ILayer
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???

请大家帮帮我 --------------------编程问答-------------------- 所有接口都是一个概念,即契约...

至于I打头只是一种命名规范,而那些转换是属于继承的概念...去好好看看面向对象入门... --------------------编程问答--------------------
引用楼主 yslfstar 的回复:
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???

转换过程中对象不会发生任何变化,只是执行者主观的认为其类型发生了改变... --------------------编程问答--------------------
引用 2 楼 vrhero 的回复:
引用楼主 yslfstar 的回复:
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???

转换过程中对象不会发生任何变化,只是执行者主观的认为其类型发生了改变...

这样说有点歧义...应该说执行者主观的认为其改变了遵守的契约... --------------------编程问答-------------------- 来学习了 --------------------编程问答-------------------- 接口是把隐式公共方法和属性组合起来,一封装特定功能的一个集合。 --------------------编程问答-------------------- I打头就是Interface接口的意思,就像vc里喜欢用C打头写一个类一样,你也不遵守
c#里也可以用接口

         
        public interface IMODULE_BASE_OPERATIONS
        {
            void New_Empty();
            ...
        }



将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化??? 

mei you

--------------------编程问答-------------------- 那么在写com组件的时候,那些接口是如何定义的? --------------------编程问答--------------------
引用 5 楼 cadtian 的回复:
接口是把隐式公共方法和属性组合起来,一封装特定功能的一个集合。

正解,接口就是表示实现某个功能的方法,但是没有具体实现。 --------------------编程问答-------------------- 有写过com组件的吗?在com工程中,接口是类似于c#中 Interface 这种方式定义的吗?
还是只是一个public类? --------------------编程问答--------------------
引用 8 楼 happyboyxq 的回复:
引用 5 楼 cadtian 的回复:
接口是把隐式公共方法和属性组合起来,一封装特定功能的一个集合。

正解,接口就是表示实现某个功能的方法,但是没有具体实现。
接口差不多就这意思 --------------------编程问答-------------------- 不一样  不是一回事
--------------------编程问答--------------------
引用楼主 yslfstar 的回复:
如题,在com开发中,借口都是以I开头的,这个借口与c#中的接口应该不是一个概念吧。
我也尝试在c++中写一个简单的com,好像在com工程中,声明一个类,再用c#的调用的时候就自动变成了以I为开头的接口?
在com开发中,如arcgis engine,有很多接口转换的语句,比如
IGlobeLayer pGlobeLayer;
p=pGlobeLayer as ILayer
将一个IGlobeLayer 借口转换为ILayer借口,这个转换过程中对象发生了什么变化???

请大家帮帮我


你这段代码中,ILayer 继承自IGlobeLayer,也就是说 IGlobeLayer的类型用ILayer来实现!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,