关于“this”关键字的基本C#类问题

时间:2011-09-15 18:40:42

标签: c# .net visual-studio-2010 c#-4.0

我正在浏览其他人的代码,我看到了这句话:

public CustomClassName this [ string varName]

请原谅这个问题的新意,但是方括号让我失望了。 这是方法还是构造函数?

"这"在这种情况下可变工作?

5 个答案:

答案 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)

这只是C#中方括号运算符的重载。

见这里:

How do I overload the square-bracket operator in C#?

答案 4 :(得分:0)

两者都不是,Indexer。它允许您执行CustomClassName [obj]并从对象中检索值。