1 //接口中方法 属性 事件等默认都是public 不允许用修饰符修饰 2 public interface IEventInterFace 3 { 4 string this[int index] { get; set; }//索引器 5 ListMyList { get; set; } //属性 6 string Name { get; set; }//属性 7 event EventHandler MyEventHandler;//事件 8 void Meth();//方法 9 }10 11 public class InterFaceTestClass : IEventInterFace12 {13 public string this[int index]//索引器实现14 {15 16 get17 {18 if (index > 0 && index <= MyList.Count - 1)19 return MyList.ToArray()[index];20 return "超出边界";21 }22 set23 {24 MyList[index] = value;25 }26 }27 public List MyList { get; set; } //属性实现28 public string Name { get; set; }//属性实现29 public void Meth()30 {31 Console.WriteLine("该类自己的Meth方法");32 }33 void IEventInterFace.Meth()34 {35 Console.WriteLine("显示实现方法,上面的Meth作为该类自己的方法。该方法不能用修饰符修饰 默认为private");36 }37 public event EventHandler MyEventHandler;//事件实现38 39 public void InvokeMyEventHandler()//调用事件的方法40 {41 MyEventHandler(null, null);42 }43 }44 class Program45 {46 public static void MyMethed(object sender, EventArgs e)47 {48 Console.WriteLine("MyMethed");49 }50 51 static void Main(string[] args)52 {53 54 var myClass = new InterFaceTestClass();55 myClass.Meth();//调用该类自己的Meth方法56 IEventInterFace face = myClass;57 face.Meth();//调用实现接口的Meth方法58 myClass.MyList = new List () { "a", "b", "c" };59 var str = myClass[1];//索引器用法60 Console.WriteLine(str);61 62 myClass[1] = "bb";63 myClass.MyEventHandler += new EventHandler(MyMethed);//事件添加函数64 65 myClass.InvokeMyEventHandler();66 67 }68 }