C# 8 引入了 Indexes 用于索引,例如使用 ^1
索引倒数第一个元素,但是其实并不是必须提供一个接收 Index
类型参数的 indexer 才能使用该特性。
只要你的类可以被计数(拥有 Length
或 Count
属性),并且可以被索引(拥有一个接收 int
参数的索引器),那么就可以用该特性。.
class MyIndex
{
public int Count { get; private set; }
public object this[int index]
{
get => throw new NotImplementedException();
}
}
class Program
{
public static void Main()
{
var x = new MyIndex();
var y = x[^1];
}
}