c#接口

 1 //接口中方法 属性 事件等默认都是public 不允许用修饰符修饰
 2     public interface IEventInterFace
 3     {
 4         string this[int index] { get; set; }//索引器
 5         List<string> MyList { get; set; } //属性
 6         string Name { get; set; }//属性
 7         event EventHandler MyEventHandler;//事件
 8         void Meth();//方法
 9     }
10 
11     public class InterFaceTestClass : IEventInterFace
12     {
13         public string this[int index]//索引器实现
14         {
15 
16             get
17             {
18                 if (index > 0 && index <= MyList.Count - 1)
19                     return MyList.ToArray()[index];
20                 return "超出边界";
21             }
22             set
23             {
24                 MyList[index] = value;
25             }
26         }
27         public List<string> 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 Program
45     {
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<string>() { "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     }

 

posted @ 2014-10-30 17:23  李辉健  阅读(712)  评论(0编辑  收藏  举报