我确信这很简单,但我显然有一个“高级时刻”。为什么在以下代码中linq对基类不可用。
public class Strings: List<String> {
public Strings() { }
public Strings(IList<String> strings) : base(strings) { }
public Strings Skip2(int i) {
var x = new List<String>();
var y = x.Skip(1).ToList();
var z = this.Skip(1).ToList();
return new Strings(base.Skip(i).ToList());
}
}
此代码生成“错误CS0117”列表&lt; string&gt;'不包含'Skip'的定义“base.Skip(i)的错误”(x.Skip或this.Skip没有错误)。为什么linq扩展方法不能使用base关键字。 如果重要的话,我在vs2015中运行c#v6。