public class abstract DataBaseTemplete
   {
        /// <summary>
        /// 执行实体类批量插入
        /// </summary>
        /// <param name="objects">实体类数组集合</param>
        /// <returns></returns>
        public abstract bool BatchInsertObject(BaseObject[] objects);        /// <summary>
        /// 执行实体类批量插入
        /// </summary>
        /// <param name="objects">Ilist泛型实体类集合</param>
        /// <returns></returns>
        public abstract bool BatchInsertObject(IList<BaseObject> objects);
    }    public class ImagesDepotManager : BaseManager
    {
        /// <summary>
        /// 批量将图片实体类插入数据库
        /// </summary>
        /// <param name="images">images集合</param>
        /// <returns></returns>
        public bool BatchInsertImages(ImagesDepot[] images)
        {
            return Template.BatchInsertObject(images);
        }        public bool BatchInsertImages(IList<ImagesDepot> images)
        {
            return Template.BatchInsertObject(images);  //<------这里报错了
        }
    }
参数“1”: 无法从“System.Collections.Generic.IList<Model.ImagesDepot>”转换为“Model.BaseObject[]” C:\Documents and Settings\zh\桌面\DataBaseControl\BLL\ImagesDepotManager.cs 22 47 BLL我实在是很无语,检查后确认:
1. ImagesDepot 确实继承BaseObject 从该方法没有报错看出 public bool BatchInsertImages(ImagesDepot[]) images)
2. 我已经重新生成N遍,确认VS2005已经认为BatchInsertObject有1次重载
3. Template哪里来的? 父类BaseManager的属性为什么他不让我用public abstract bool BatchInsertObject(IList<BaseObject> objects) 这个重载,
老是自动使用public bool BatchInsertImages(ImagesDepot[] images) 各位高手们给解决一下

解决方案 »

  1.   


    public abstract class  DataBaseTemplete<T>
       {
            /// <summary>
            /// 执行实体类批量插入
            /// </summary>
            /// <param name="objects">实体类数组集合</param>
            /// <returns></returns>
            public abstract bool BatchInsertObject(T[] objects);        /// <summary>
            /// 执行实体类批量插入
            /// </summary>
            /// <param name="objects">Ilist泛型实体类集合</param>
            /// <returns></returns>
            public abstract bool BatchInsertObject(IList<T> objects);
        }    public class ImagesDepotManager<T>:BaseManager
        {
    DataBaseTemplete<T> Template = null;
    /// <summary>
            /// 批量将图片实体类插入数据库
            /// </summary>
            /// <param name="images">images集合</param>
            /// <returns></returns>
            public bool BatchInsertImages(T[] images)
            {
                return Template.BatchInsertObject(images);
            }        public bool BatchInsertImages(IList<T> images)
            {
                return Template.BatchInsertObject(images);
            }
        }
      

  2.   


    public abstract class  DataBaseTemplete <T> 
      { 
            /// <summary> 
            /// 执行实体类批量插入 
             /// </summary> 
            /// <param name="objects">实体类数组集合 </param> 
            /// <returns> </returns> 
            public abstract bool BatchInsertObject(T[] objects);         /// <summary> 
            /// 执行实体类批量插入 
             /// </summary> 
            /// <param name="objects">Ilist泛型实体类集合 </param> 
            /// <returns> </returns> 
            public abstract bool BatchInsertObject(IList <T> objects); 
        }     public class ImagesDepotManager <T>:BaseManager 
        { 
            DataBaseTemplete <T> Template = null; 
            /// <summary> 
            /// 批量将图片实体类插入数据库 
             /// </summary> 
            /// <param name="images">images集合 </param> 
            /// <returns> </returns> 
            public bool BatchInsertImages(T[] images) 
            { 
                return Template.BatchInsertObject(images); 
            }         public bool BatchInsertImages(IList <T> images) 
            { 
                return Template.BatchInsertObject(images); 
            } 
        }
    附list和数组转换的例子
    1、List -->数组调用List.toArray()方法,例子如下:    List<String> list = new ArrayList<String>();   
       list.add("a1");   
       list.add("a2");   
                 
       String[] toBeStored = new String[list.size()];   
       list.toArray(toBeStored);   
       for (String s : toBeStored) {   
            System.out.println(s);   
       }2、数组-->List调用java.util.Arrays.asList()方法  String [] arr = new String[]{"a1","a2"};
       List l = java.util.Arrays.asList(arr) ;
      
        System.out.print(l) ;
     
      

  3.   

    无法从“System.Collections.Generic.IList <Model.ImagesDepot>”转换为“Model.BaseObject[]” 
    这个错误不是很明显了吗,不能转换啊
      

  4.   

    .. 你还要几层继承... 编译报错 又不是运行时报错 你管他几层报错 ,现有代码已经能看出来了好像我说的是方法重载... 各个却在讲 怎么转换list<string> 到string[] ...无语..
      

  5.   

    IList<ImagesDepot> 和 IList<BaseObject>不是同种类型,4楼已经给出了解决方案