我有一个名为IObSrc的接口,我有一些实现该接口的类,如ObSrc1、ObScr2等。
Interface IObSrc
{
string id;
}
我还有一个名为IDtSrc的接口,这个接口反过来由几个称为DtSrc1、DtSrc2的类实现。
Interface IDtSrc
{
IObSrc getObject();
Dictionary<string,IObSrc> getObjects();
}
当我从DtSrc1实现这个接口并返回ObSrc1时,没有问题,但是当我返回Dictionary<string,ObSrc1>
或Dictionary<string,ObSrc2>
时,会出现类型不匹配的提示。
public class DtSrc : IDtSrc
{
public Dictionary<string,IObSrc> getObjects()
{
Dictionary<string,ObSrc1> val1 = new ...'
...
return val1;
}
}
我可以帮你解决这个问题。
*编辑*
我还有一个问题,如果一个方法应该返回一个通用类型,但是实现可以有所变化,该怎么办。
例子:
interface IDtSrc<T> where T:IObSrc
{
T ExecuteObject(string objId);
}
这将被用作
class DtSrc1
{
string ExecuteObject(string objId)
{..}
}
并且。
class DtSrc2
{
Dictionary<string,string> ExecuteObject(string objId)
{..}
}
请提供正确的程序建议。
IDataSource
。在当前的环境中没有必要使用缩写名称。 - Anthony PegramSql
是一个众所周知和被接受的缩写(就像Html
)。Db
可能会引起争议。但是省略所有元音字母就太邪恶了。 - ChrisWue