我定义一个接口,我在A类中实现了接口中的方法,我在B类中怎么样调用这些方法了?
比如:
public interface ITest
{
DataTable ReturnDb(string sql);
}
public class DataControl:,ITest
{
public DataTable ReturnDb(string sql)
{
...//方法体
}
}
我要在其他类中调用接口中的ReturnDb方法,怎么调用
用((ITest)IT).ReturnDb(sql)
怎么提示有错误了
比如:
public interface ITest
{
DataTable ReturnDb(string sql);
}
public class DataControl:,ITest
{
public DataTable ReturnDb(string sql)
{
...//方法体
}
}
我要在其他类中调用接口中的ReturnDb方法,怎么调用
用((ITest)IT).ReturnDb(sql)
怎么提示有错误了
DataTable dt=it.ReturnDb(sql);
不想实例化DataControl,那么怎么能调用其方法。
如果按照你的思路,我还要用接口做什么了?
我直接实例化DataControl就可以了啊!
ITest it=new DataControl();
DataTable dt=it.ReturnDb(sql);那这段程序就不需要改变,如果你直接实例化DataControl,那这段程序就必然会受到影响.如果要了解接口的真正作用,看设计模式吧!
如 IList 接口
它定义有 Add ,Clear,Contains ,IndexOf ,Insert ,Remove ,RemoveAt 这些方法我写个类MyList,我告诉你我实现了IList接口,那么你并不用关心我里面有多少方法,怎么实现的那些方法,你照样可以用Add ,Clear,Contains ,IndexOf ,Insert ,Remove ,RemoveAt这些方法,因为你知道我这个类实现了IList后必定会有这些方法的定义和实现
你说你实现了那些方法,我可以直接继承你实现IList接口那些方法的MyList类啊,根本不需要考虑什么IList接口的啊?
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)
{
}
我再仔细看看你给的例子!
using System.Drawing 吗?呵呵,顶!