C# 类扩展奇怪的索引语法。
我在我最喜欢的人工智能库之一(Jeff Heaton等人的Encog)中发现了以下代码 代码似乎在类上有某种扩展,我假设它允许以双精度值访问C# 类扩展奇怪的索引语法。,c#,c#-4.0,C#,C# 4.0,我在我最喜欢的人工智能库之一(Jeff Heaton等人的Encog)中发现了以下代码 代码似乎在类上有某种扩展,我假设它允许以双精度值访问 public interface IMLDataModifiable: IMLData { /// <summary> /// Set the specified index. /// </summary> /// <param name="x">The index to access.&
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; }
}
公共接口IMLData可修改:IMLData
{
///
///设置指定的索引。
///
///要访问的索引。
新的双精度this[int x]{get;set;}
}
有谁能告诉我这种扩展名叫什么,以便我能更详细地研究它
我需要在我自己的C++ CLI库中复制这个。对这个问题的回答将有助于我为进一步的研究提供一个良好的起点
如果我能在这方面得到任何帮助,我将不胜感激
有人能告诉我这种扩展名叫什么吗
更详细地研究它
这被称为一个。它允许您在给定int
值的指定索引处访问对象,并返回double
例如,考虑到这个非常简单的实现,假设我们的类中有一个double的后备存储,并且我们希望通过索引器公开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; }
}
}
将产生2。这很可能是重复的,但我不知道描述此语法的术语,因此无法查看。谢谢@Yuval Itzhakov的回答!感谢您的明确解释。@PrimeByDesign欢迎您。
void Main()
{
var foo = new Foo();
Console.WriteLine(foo[1]);
}