我正在浏览其他人的代码,我看到了这句话:
public CustomClassName this [ string varName]
请原谅这个问题的新意,但是方括号让我失望了。 这是方法还是构造函数?
"这"在这种情况下可变工作?
答案 0 :(得分:6)
它被称为索引器。 MSDN page.
答案 1 :(得分:0)
它是一个索引器,因此您可以访问类似于数组的类。
答案 2 :(得分:0)
它正在您的类型上定义索引运算符。以List<T>
类为例。图书馆设计师希望您能够编写如下代码:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
int x = list[2]; // x == 3
完成此操作的语法就是您在上面发布的内容。所以,对于你自己的类型,你可以......
class NameCollection : /* whatever */
{
private List<string> _names = new List<string> { "Ed", "Sally", "John" };
public string this[int index]
{
get { return _names[index]; }
}
}
答案 3 :(得分:0)
答案 4 :(得分:0)
两者都不是,Indexer。它允许您执行CustomClassName [obj]并从对象中检索值。