【发布时间】:2010-11-08 21:56:10
【问题描述】:
我试图创建一个可以对任何类似数组的类进行切片的扩展(因为在标准库中奇怪地没有切片)。例如:
public static M Slice<M,T>(this M source, int start, int end) where M : IList<T>
{
//slice code
}
但是,编译器不会将此方法附加到类型 M 的对象(即使它的错误消息声称这是它正在寻找的)。它似乎更依赖于方法本身的类型参数,例如以某种方式,但我不完全了解事情是如何运作的。
(是的,可以轻松编写一个仅适用于 List 的示例,但我很好奇这是否可能。)
【问题讨论】: