类扩展奇怪的索引语法
本文关键字:索引 语法 扩展 | 更新日期: 2023-09-27 18:28:12
我在我最喜欢的一个AI库中发现了以下代码(Jeff Heaton等人的Encog)。
代码似乎对类进行了某种扩展,我认为这允许它作为双值访问。
public interface IMLDataModifiable: IMLData
{
/// <summary>
/// Set the specified index.
/// </summary>
/// <param name="x">The index to access.</param>
new double this[int x] { get; set; }
}
有人能告诉我这种扩展叫什么吗?这样我就可以更详细地研究它了?
我需要在我自己的C++Cli库中复制它。这个问题的答案将为我的进一步研究提供一个很好的起点。
我真的很感激能在这方面得到任何帮助。
有人能告诉我这种分机叫什么吗?这样我就可以更详细地研究一下?
这被称为索引器。它允许您访问给定int
值的指定索引处的对象,并返回double
。
例如,给定这个非常天真的实现,假设我们的类中有一个doubles的后备存储,并且我们想通过索引器公开Foo
,我们可以这样做:
public class Foo
{
private List<double> doubles = new List<double> { 1.0, 2.0, 3.0 };
public double this[int x]
{
get { return doubles[x]; }
set { doubles[x] = value; }
}
}
然后使用以下索引器访问我们的Foo
对象:
void Main()
{
var foo = new Foo();
Console.WriteLine(foo[1]);
}
将产生2。