我最近试图通过尽可能使用泛型来简化我的一些代码.然而,这个特殊的例子令我难过......但它看起来很无辜!
这是违规代码(简化).
public static void Updater(CommodityVO vo)
{
// Update something
}
public static void BulkUpdate<T>(IEnumerable<T> vos)
{
foreach (var vo in vos)
{
Updater(vo);
}
}
Run Code Online (Sandbox Code Playgroud)
在Visual Studio中,'Updater(vo)'中的'vo'得到一条波浪线,编译器(VS2010)报告:
参数类型'T'不能分配给参数类型CommodityVO
<T>与IEnumerable <T>的行为相同我现在一直在解决这个问题.但是我想知道为什么这被拒绝了...特别是因为这对我来说都很好看.我错过了什么?
所有帮助赞赏.