我定义一个接口,我在A类中实现了接口中的方法,我在B类中怎么样调用这些方法了?
比如:
public interface ITest
{
DataTable ReturnDb(string sql);
}
public class DataControl:,ITest
{
public DataTable ReturnDb(string sql)
{
...//方法体
}
}
我要在其他类中调用接口中的ReturnDb方法,怎么调用
用((ITest)IT).ReturnDb(sql)
怎么提示有错误了

解决方案 »

  1.   

    还有,我想问的是,我其他类不想通过继承DataControl或者是实例化DataControl来调用ReturnDb方法,这样就是接口的用处吗?
      

  2.   

    ITest it=new DataControl();
    DataTable dt=it.ReturnDb(sql);
    不想实例化DataControl,那么怎么能调用其方法。
      

  3.   

    fsdy2000(乡愁) 你好:
    如果按照你的思路,我还要用接口做什么了?
    我直接实例化DataControl就可以了啊!
      

  4.   

    或者说我直接继承DataControl类也可以啊
      

  5.   

    如果你改动实例DataControl,如果你用
    ITest it=new DataControl();
    DataTable dt=it.ReturnDb(sql);那这段程序就不需要改变,如果你直接实例化DataControl,那这段程序就必然会受到影响.如果要了解接口的真正作用,看设计模式吧!
      

  6.   

    接口的作用并不是你说的那种其他类不想通过继承DataControl或者是实例化DataControl来调用ReturnDb方法.接口就好比制定一种类的规范,具体的实现你不需要关心
    如 IList 接口
    它定义有 Add ,Clear,Contains ,IndexOf ,Insert ,Remove ,RemoveAt  这些方法我写个类MyList,我告诉你我实现了IList接口,那么你并不用关心我里面有多少方法,怎么实现的那些方法,你照样可以用Add ,Clear,Contains ,IndexOf ,Insert ,Remove ,RemoveAt这些方法,因为你知道我这个类实现了IList后必定会有这些方法的定义和实现
      

  7.   

    支持lyb_abiandbel(渴望成为高手)的观点,在C#只能单根继承,通过接口就可以变相的实现多继承,我是个新手,如有说错,请见谅啊
      

  8.   

    pupo(泡泡) 你好!
    你说你实现了那些方法,我可以直接继承你实现IList接口那些方法的MyList类啊,根本不需要考虑什么IList接口的啊?
      

  9.   

    接口主要是制定一个规范,及增加程序的灵活性
    1.接口规范性举例
    public string InsertValue(System.Collections.IList list,object o)
    {
    list.Add(o);
    }
    InsertValue方法并不关心list是什么类,由什么人实现的,只要list实现了IList接口就肯定会有Add这个方法.2.接口灵活性举例
    以下两个方法,前者用接口,后者用具体实现的类,很显然,用接口作为参数更灵活,只要实现了IList接口的类都可以作为参数带进去
    public string GetMaxValue(System.Collections.IList list)
    {

    }public string GetMaxValue(System.Collections.ArrayList list)
    {
    }
      

  10.   

    多谢pupo,我看了些网上的资料还是比较糊涂!
    我再仔细看看你给的例子!
      

  11.   

    接口哇,不明了,大伙说说,接口里可以
    using System.Drawing 吗?呵呵,顶!
      

  12.   

    你要实现在方试可以反射,dnn里用的很多,也很实用.