C#.NET描述arcobjects中的接口查询(QI)技术

        在AO或者是AE的二次开发中,接口查询(QI)技术被认为是最基本,同时也是最重要的技术之一,几乎每一个GIS系统,甚至是一个小小的GIS功能模块,都不可能不用到接口查询技术。通俗地说,QI就是类中的显式强制转换,请看下面例子。
/*
 * Created by SharpDevelop.
 * User: noo
 * Date: 2009-8-18
 * Time: 15:46
 * 
 * 接口查询(QI)
 
*/

using  System ;
interface  IApple // 苹果接口
{
    
string  spice // 香属性
    {
        
get ;
        
set ;
    }
    
void  circle(); // 圆方法
}
interface  IBanana // 香蕉接口
{
    
string  sweet // 甜属性
    {
        
get ;
        
set ;
    }
    
void  column(); // 柱方法
}
class  Fruit:IApple,IBanana // 水果类
{
    
private   string  str1;
    
string  IApple.spice // 注意这里的写法
    {
        
get { return  str1;}
        
set {str1 = value;}
    }
    
void  IApple.circle() // 同上
    {
        Console.WriteLine (
" 苹果接口的成员函数 " );
    }
    
    
private   string  str2;
    
string  IBanana.sweet
    {
        
get { return  str2;}
        
set {str2 = value;}
    }
    
void  IBanana.column()
    {
        Console.WriteLine (
" 香蕉接口的成员函数 " );
    }
}
class  Test
{
    
static   void  Main()
    {
        IApple pApple
= new  Fruit (); // 实例化接口类型的类
        pApple.circle ();
        pApple.spice 
= " 香苹果 " ;
        Console.WriteLine (pApple.spice );
        
        IBanana pBanana
= new  Fruit ();
        pBanana.column ();
        pBanana.sweet 
= " 甜香蕉 " ;
        Console.WriteLine (pBanana.sweet );
        
        IApple pApp
= new  Fruit ();
        IBanana pBan
= pApp  as  IBanana ; // 接口查询(QI),这里其实就是一个显式的强制转换
        pBan.column ();
        pBan.sweet 
= " 甜香蕉 " ;
        Console.WriteLine (pBan.sweet );
    }
}



从上面例子可以看出,QI其实是很好掌握的,原理非常简单

转载于:https://www.cnblogs.com/gisland/archive/2009/08/18/1549077.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值