黑马程序员技术交流社区
标题:
哪位大神用案例举例指教一下【接口】【委托】【索引器...
[打印本页]
作者:
袁晓俊
时间:
2014-4-9 21:00
标题:
哪位大神用案例举例指教一下【接口】【委托】【索引器...
本帖最后由 袁晓俊 于 2014-4-26 19:14 编辑
哪位大神用案例举例指教一下【接口】【委托】【索引器】的知识啊,个人理解不透彻。
1:【接口】:一般在上面情况下用?
2:【委托】:在上面情况下用,,以及【索引器】,
作者:
爱吃桃子的猫
时间:
2014-4-11 14:14
本帖最后由 爱吃桃子的猫 于 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
不好意思我是小菜一枚,不知道这些网上找到的例子是否对你有帮助。谢谢,加油!
作者:
袁晓俊
时间:
2014-4-26 19:14
明白了,,,,,,感谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2