码迷,mamicode.com
首页 > Windows程序 > 详细

C#接口

时间:2018-09-21 20:50:20      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:列表   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<my.value)//this小于返回-1

      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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!