A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 袁晓俊 于 2014-4-26 19:14 编辑

哪位大神用案例举例指教一下【接口】【委托】【索引器】的知识啊,个人理解不透彻。
1:【接口】:一般在上面情况下用?
2:【委托】:在上面情况下用,,以及【索引器】,

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 爱吃桃子的猫 于 2014-4-11 14:17 编辑

一个接口定义了一个行为契约。接口可以包容方法、属性、事件、以及索引器。在一个接口声明中,我们可以声明零个或者多个成员。所有接口成员的默认访问类型都是Public。如果在接口成员声明中包括了任何修饰符,那么会产生一个编译器错误。与一个非抽象类类似,一个抽象类必须提供接口中所有成员的实现,只要这些成员在这个类的基类中出现过。
请看下面的接口:
public interface IDrawingObject{   
     event EventHandler OnDraw;  //事件   
     string Name  // 属性   
{        
     get;        
     set;   
}   
     int this[int index]  //索引器   
{        
     get;        
     set;   
}   
    void SetValue(); //方法
}
该接口包含了 C# 接口所能接纳的所有成员,事件,属性,索引器,方法。把该接口编译后,我们用 MSIL Disassembler 工具查看一下:其实属性Name 对应于 Get_Name()、Set_Name() 这两个方法,事件OnDraw 对应于 add_OnDraw()、remove_OnDraw() 这两个方法,索引器对应于 get_Item()、set_Item() 这两个方法。
再看下面的委托和类的定义:
public delegate void TestEventDelegate(object sender, System.EventArgs e);
   class TestClass
{       public void SetValue()   
    {   
     }
}定义一个委托和定义一个类是没有什么区别的,都是定义了个新的类型。所以 C# 接口是不能有委托的,除非微软告诉我们 C# 接口中是可以定义类的。
具体例子可以参考:
C#中委托,索引器,属性,接口例子http://www.cnblogs.com/zchunbo/archive/2012/01/01/2309632.html


不好意思我是小菜一枚,不知道这些网上找到的例子是否对你有帮助。谢谢,加油!




评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
明白了,,,,,,感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马