【发布时间】:2020-04-01 06:52:24
【问题描述】:
我的代码接受一个参数,它需要访问Lengthproperty 以及可以通过[index] 进行索引。当我运行以下代码时,调用传递数组的方法的最后一行编译失败:
Cannot convert type 'int[]' to 'IArrayLike<int>'
我的接口定义应该是接受数组以及提供Length 属性且可索引的其他类。
interface IArrayLike<T> {
T this[int index] { get; set; }
int Length { get; }
}
class SomeClass<T> where T : IComparable<T> {
public static int SomeMethod(T item, IArrayLike<T> data) {
// code
}
}
int[] someArray = new int[5];
SomeClass.SomeMethod(123, someArray);
【问题讨论】:
-
你想完成什么
-
我正在处理既可以存在于原生数组(例如 int[])中的数据,也可以存在于大数据的“分页”数组中。分页类具有多维数组来存储大量数据,并且它实现了长度和索引以允许进行二进制搜索等操作,因此我需要能够使用数组或类的实例调用方法提供 Length 属性并且是可索引的。