方法重载为什么会这样?

hunluan89 2009-06-24 11:03:34

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) 各位高手们给解决一下
...全文
51 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchangxiong 2009-06-24
  • 打赏
  • 举报
回复
IList<ImagesDepot> 和 IList<BaseObject>不是同种类型,4楼已经给出了解决方案
hunluan89 2009-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 cpio 的回复:]
光有这点代码看不出什么问题,还有几层继承没有发过来
[/Quote]
.. 你还要几层继承... 编译报错 又不是运行时报错 你管他几层报错 ,现有代码已经能看出来了

好像我说的是方法重载... 各个却在讲 怎么转换list<string> 到string[] ...无语..
hunluan89 2009-06-24
  • 打赏
  • 举报
回复
泛型使用父类 不能使用泛型子类做参数吗?
MicroDeviser 2009-06-24
  • 打赏
  • 举报
回复
无法从“System.Collections.Generic.IList <Model.ImagesDepot>”转换为“Model.BaseObject[]”
这个错误不是很明显了吗,不能转换啊
微醺_zZ 2009-06-24
  • 打赏
  • 举报
回复

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) ;


cpio 2009-06-24
  • 打赏
  • 举报
回复
光有这点代码看不出什么问题,还有几层继承没有发过来
hunluan89 2009-06-24
  • 打赏
  • 举报
回复
不用像2楼一样吧 我其他类似重载又没有事情
北京的雾霾天 2009-06-24
  • 打赏
  • 举报
回复

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);
}
}
LQknife 2009-06-24
  • 打赏
  • 举报
回复
现在的泛型还不支持 逆变与协变

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧