标题:接口返回值的问题
取消只看楼主
belin2000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:975
专家分:194
注 册:2004-6-2
结帖率:0
已结贴  问题点数:20 回复次数:1 
接口返回值的问题
在开发一个缓存类的时候,发现了一个接口返回的问题,百思不能解决,求帮助:

接口:

 public interface IDataHelper
    {
        /// <summary>
        /// 根据条件从缓存库中获取数据(数据库是返回IList&lt;T&gt; / 文件是返回string)
        /// </summary>
        /// <param name="NamespaceClassnameAndPara">保存在缓存库中的key</param>
        /// <param name="ht">缓存库</param>
        /// <param name="forbase">如果库中不存在,使用这些条件获取数据(类型:FileForBase/DataForBase)</param>
        /// <returns></returns>
        object GetItem(IHelperPara NamespaceClassnameAndPara, Hashtable ht, object forbase);
}

GetItem 返回 IList<T> 或者string类型,IList<T>的数据是从数据库返回;string 是从文件返回;

数据库类 的继承接口的代码:

public object GetItem(IHelperPara NamespaceClassnameAndPara, Hashtable ht, object forbase)
        {
            ICache cache = new ITA.Base.EntLib.Caching.Cache(ht);
            //如果数据不存在,使用委托获取数据。
            // cache.DataDoing(new DataDelegate(GetDataByDataBase<T>), forbase)使用委托获取数据
            CacheItem item = cache.GetItem(NamespaceClassnameAndPara, cache.DataDoing(new DataDelegate(GetDataByDataBase<T>), forbase));
            return item.Data;
        }
        IList<T> GetDataByDataBase<T>(object forbase) where T:new()
        {
            //doing;
        }
文件类 的继承接口的代码:
public object GetItem(IHelperPara NamespaceClassnameAndPara, System.Collections.Hashtable ht, object forbase)
        {

            ICache cache = new ITA.Base.EntLib.Caching.Cache(ht);
//如果数据不存在,使用委托获取数据。
 // cache.DataDoing(new DataDelegate(GetDataByDataBase), forbase)使用委托获取数据

            CacheItem item = cache.GetItem(NamespaceClassnameAndPara, cache.DataDoing(new DataDelegate(GetDataByDataBase), forbase));
            return item.Data;
        }
object GetDataByDataBase(object forbase)
        {
//doing;
        }

现在问题就是出现在 数据库类的方法 GetItem 代码中委托事件 GetDataByDataBase 中返回的 IList<T> 。T不知道如何定义和处理。
搜索更多相关主题的帖子: 地址栏 public interface 广州 
2012-09-24 18:49
belin2000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:975
专家分:194
注 册:2004-6-2
得分:0 
楼上不明白哦,
问题是GetItem  我的返回值是 obj;
obj 可以是ilist<T>和string

也就是说
数据库类 的继承接口的代码:

public object GetItem(IHelperPara NamespaceClassnameAndPara, Hashtable ht, object forbase)
{}
返回的是IList<T>,但这个方法没有定义T的。该方法是接口方法。

59ita点com(我就爱TA)
2012-09-28 21:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-382025-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.381544 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved