我遇到了这个C#代码,这显然允许我通过输入字符串中的名称在单个方法中访问对象的属性。我认为它是一个相对较新的C#功能。有人可以告诉我它的名称和对文档的引用吗?
public class ExamValidation : Exam, IDataErrorInfo
{
//...
public string this[string columnName]
{
//---
}
}
答案 0 :(得分:4)
它被称为indexer并且它不是新的 - 它从一开始就在C#中。它只是在集合中查找数据的另一种方式(通过字符串而不是整数索引)。
在数据结构中发现元素的 order 与通过字符串键查找数据一样重要,例如字典或数据表(按列名查找行数而不是顺序)。
答案 1 :(得分:2)
这称为indexer,它根本不是新的。自框架的第一次迭代以来,这些已经存在。索引器通常看到int
值,例如数组,但它们可以接收任何类型。请注意文档:
索引器不必用整数值编制索引;由您决定如何定义特定的查找机制。
因此,在这种情况下,它使用string
查找数据。
答案 2 :(得分:1)
这告诉我该类有一个索引器,因此您可以保存数组/值列表。