【c#】Interface

常规接口

  • 声明方法和属性;
  • 类继承接口;
public interface ICollapse{
    public void Reset();
}

public class Collapse_A: ICollapse{
    public void Reset(){
        Debug.log("Collapse_A");
    }
}

public class Collapse_B: ICollapse{
    public void Reset(){
        Debug.log("Collapse_B");
    }
}

public class UseCollapse{
    public void Init(){
        //ICollapse collapse_A = new Collapse_A();
        //collapse_A.Reset();
        Reset(new Collapse_A());
        
        ICollapse collapse_B = new Collapse_B();
        collapse_B.Reset();
        //Reset(collapse_B);    
    }
    
    public void Reset<T>(T collapse){
        collapse.Reset();
    }
    
}

接口扩展

//空接口
public interface ICollapse{
    
}
//接口扩展
public static class EICollapse{
    //方法的参数中存在this,表示该实例的扩展方法
    
    //注意:此方法必须在实例后执行“collapse.”Reset(); 
    public static void Reset<T> (this T collapse) where T : ICollapse{
        Debug.log("reset");
    }
}

public class Main{
    //使用:
    ICollapse collapse = new ICollapse();
    collapse.Reset();
}

接口继承

public interface ICollapse{
    public void Reset();
}
public interface ICollapsePro:ICollapse{
    public void CollapseOptionVisiable(int id);
}

public class Collapse:ICollapsePro{
    public void Reset(){
        Debug.log("Collapse_B");
    }
    public void CollapseOptionVisiable(int id){
        Debug.log("展开选项"+id);
    }
}
​```
posted @ 2024-10-24 09:49  Sitar  阅读(1)  评论(0编辑  收藏  举报