C#接口
2021-07-10 08:07
标签:列表 pareto ons 事件 派生 OLE public ble 情况 接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。对不同对象实现相同消息。 示例: Interface Info{ string GetName(); string GetAge();} class CA:Info{ public string name; public string age; public GetAge(){ return age;} public GetName(){ return name;}} public class CB:Info{ public string name; public string age; public GetAge(){ return age;} public class Program{ static void printf(Info item){ item.GetName(); item.GetAge();} public static void main(){ CA a=new CA(); CB b=new CB(); printf(a); printf(b);} } IComparable接口示例: 数组排序Sort()依赖于一个Icomparable接口中的CompateTo函数,需要重写,若为一个类的排序改写则: public class Myclass:Icomparable{ public int value; public int CompareTo(object obj){ Myclass my=obj as Myclass; if(this.value return -1; if(this.value>my.value)//this大于返回1 return 1; return 0;//相等返回0} 1.声明接口 接口声明不能包含数据成员和静态成员,只能声明非静态的方法、属性、事件、索引器。 interface IMyInterface { int test(int v); } 接口声明允许有修饰符,但接口成员不允许有修饰符。隐式public。 public interface I{ int test(int v); private test(int v);//不允许} 2.实现接口 只有类和结构才能实现接口。 3.接口是引用类型 接口不仅仅是类或结构要实现的成员列表,它还是一个引用类型。 class my:Info{…} my mc=new my(); Info if=(Info)mc;//也可以用as 4.实现具有重复成员的接口 如果一个类实现了多个接口,出现重复情况则只需要用单个成员来包含所重复的接口。 5.派生成员作为实现 interface Itfc{ void print();} class mybase{ public void print(){Console.WreteLine(“Fc”);} class derived:mybase,Itfc{} class Program{ static void main(){ derived d=new derived(); d.printf();}} 虽然派生类没有,则实现基类中与接口相同的函数。 6.显式接口成员实现 当继承多个接口的时候,对不同接口相同方法改写 interface i1{void print();} interface i2{void print();} class test:i1,i2{ void i1.print();void i2.print();} 访问显式接口需要将本类转换成接口类型。 C#接口 标签:列表 pareto ons 事件 派生 OLE public ble 情况 原文地址:https://www.cnblogs.com/dlvguo/p/9688365.html