在AO开发中,经常会遇到类似的声明:
IBasicMap pMap=new MapClass();
于是就会产生这种疑问,为什么不这样声明呢?
MapClass pMap=new MapClass();
如果这样声明,将会编译错误,不能通过类的全权名进行方法的调用,只能用接口实例来访问。
这是因为Class(如上例中MapClass)里实现相关接口的方法, 属性是以显式接口的方式实现的。
举个简单的例子:
如果此时用
就会产生编译错误。
只能用
IBasicMap pMap=new MapClass();
于是就会产生这种疑问,为什么不这样声明呢?
MapClass pMap=new MapClass();
如果这样声明,将会编译错误,不能通过类的全权名进行方法的调用,只能用接口实例来访问。
这是因为Class(如上例中MapClass)里实现相关接口的方法, 属性是以显式接口的方式实现的。
举个简单的例子:
interface IZou
{
void start();
void stop();
}
class Person : IZou
{
void IZou.start()//注:显式接口
MessageBox.Show("开始走");
}如果此时用
Person p=new Person();就会产生编译错误。
只能用
IZou p=new Person();
本文深入探讨了在C#编程中,如何通过接口实例来访问类实现的相关接口方法,解释了为什么不能直接使用类实例进行接口方法调用的原因。通过一个具体的例子,展示了接口和类之间调用的机制及其限制。
5870

被折叠的 条评论
为什么被折叠?



