【发布时间】:2021-05-04 15:29:30
【问题描述】:
你好,下面的代码。我知道 T 将始终是基类“Item”中的一种类型。 但我不能将列表转换为项目。对于 T 项目它的工作。
private List<Item> activeItemList;
private Item activeItem;
public void StartBuildingSystem<T>(List<T> itemList, T item, int count, string name) where T : Item
{
UiPlacementActivate(itemList, item,count);
PlacingAreas(GetActiveBluePrint(name), GetActiveType(itemList, name));
activeBuildingType = GetActiveBuildingType(name);
activeItem = item;
//activeItemList = itemList;//
}
// // 中的代码不起作用,因为我无法将 List T 转换为 List Item。有更好的方法吗?如果我知道传入的列表将始终来自基类“项目”,但它来自不同的库存(冷却、安全、....),或者有没有办法我可以轻松地将列表转换为项目列表,就像它适用于T 项目到项目。
【问题讨论】:
-
你能发布你得到的确切错误吗?在不知道您正在使用的所有方法的确切签名的情况下,很难看到它......一般来说,您可能会使用Linq
Cast<T> -
在 C# 中查找协方差——大量的 SO 帖子和其他关于它的文章