您能否按照协变的方式为通用列表编写一个交换程序?以下是一个无法工作的示例交换程序:
public static void Swap(List<IComparable> list, int pos1, int pos2)
{
IComparable temp = list[pos1];
list[pos1] = list[pos2];
list[pos2] = temp;
}
这里调用 Swap(new List<int>{1,2}, 0, 1)
是行不通的,因为这个版本的 Swap 不是协变的。