zoukankan      html  css  js  c++  java
  • C#接口

    接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。对不同对象实现相同消息。

      示例:

      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();}

    访问显式接口需要将本类转换成接口类型。

  • 相关阅读:
    Spring Cloud
    如何修改容器时间而不改变宿主机时间?
    消息中间件 RabbitMQ 入门篇
    CentOS7下NFS服务安装及配置固定端口
    查看ssh有没有被黑的IP
    JVM常用命令和性能调优建议
    nfs高可用
    kafka集群部署以及单机部署
    OSGI企业应用开发(十三)OSGI Web应用开发(二)
    OSGI企业应用开发(十二)OSGI Web应用开发(一)
  • 原文地址:https://www.cnblogs.com/dlvguo/p/9688365.html
Copyright © 2011-2022 走看看