·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 委托
1、接口: 接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法。对于C#语言而言,由于只能继承自一个父类,因此若有多个规则需要实现,则使用接口是个比较好的做法。 2、接口的定义interface 接口名{ 方法声明;} 3、不同接口中若有多个相同名称的方法,则需要显式指定接口名,例如: 4、接口的使用使用接口也可以实现多态。代码如下:class PRogram{ static void Main(string[] args) { //提供三个类,完成工资的计算 List<ICalu> list = new List<ICalu>(); list.Add(new Boss()); list.Add(new Clert()); list.Add(new Clert()); list.Add(new Customer()); foreach (ICalu emp in list) { emp.Calu(); //多态 } }}class Boss : ICalu{ public void Calu() { Console.WriteLine("计算老板工资"); } }class Customer : ICalu{ public void Calu() { Console.WriteLine("计算客户工资"); }}class Clert : ICalu{ public void Calu() { Console.WriteLine("计算职员工资"); }}interface ICalu{ void Calu();} 5、接口应用场合举例 6、接口demousing System;using System.Collections.Generic;using System.Linq; using System.Text;namespace Consoleapplication1 { class Program { static void Main(string[] args) { List<IShow> list = new List<IShow>(); list.Add(new Map()); list.Add(new Voice()); list.Add(new Video()); list.Add(new ThreeD()); foreach(IShow ishow in list) { ishow.Show(); } } } interface IShow { void Show(); } public class Map:IShow { public void Show() { Console.WriteLine("显示图片"); } } public class Voice : IShow { public void Show() { Console.WriteLine("播放声音"); } } public class Video : IShow { public void Show() { Console.WriteLine("显示视频"); } } public class ThreeD : IShow { public void Show() { Console.WriteLine("3D交互"); } }}
using System;
using System.Collections.Generic;
using System.Linq; using System.Text;
namespace ConsoleApplication2 {
public delegate void Mydel();
class Program {
static void Main(string[] args) {
Hospital h = new Hospital();
People LaoWang = new People();
LaoWang.OnEatTooMuch += new Mydel(h.Check);
LaoWang.Eat(10); }
}
class People {
public event Mydel OnEatTooMuch;
public void Eat(int i) {
if(i<3) {
Console.WriteLine("吃的太少"); }
else if(i==3) { Console.WriteLine("吃的正好"); }
else if (i <=5) { Console.WriteLine("吃的多了点"); }
else { if(OnEatTooMuch!=null)
{
OnEatTooMuch(); }
}
}
}
class Hospital {
public void Check() { Console.WriteLine("治疗"); }
}
}