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

发布于 2024-12-04 13:29:04 字数 170 浏览 1 评论 0原文

我正在查看别人的代码,我看到了这样的说法:

public CustomClassName this [ string varName]

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

在这种情况下“this”变量如何工作?

I'm going through someone else's code and I saw this statement:

public CustomClassName this [ string varName]

Please excuse the newbness of this question, but the square brackets threw me off.
Is this a method or constructor?

How does the "this" variable work in this case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

深空失忆 2024-12-11 13:29:04

它称为索引器。 MSDN 页面。

It's called an indexer. MSDN page.

那伤。 2024-12-11 13:29:04

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

Neither, it's an Indexer. It allows you to do CustomClassName[ obj ] and retrieve a value from the object.

七颜 2024-12-11 13:29:04

它是一个索引器,因此您可以像访问数组一样访问该类。

It is an indexer, so you can access the class similar to an array.

戴着白色围巾的女孩 2024-12-11 13:29:04

它正在为您的类型定义一个索引运算符。以 List 类为例。库设计者希望您能够编写如下代码:

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]; }
    }
}

It is defining an index operator on your type. Take for example, the List<T> class. The library designers wanted you to be able to write code like this:

List<int> list = new List<int> { 1, 2, 3, 4, 5 };
int x = list[2]; // x == 3

The syntax that accomplishes that is what you have posted above. So, for your own types, you can...

class NameCollection : /* whatever */
{
    private List<string> _names = new List<string> { "Ed", "Sally", "John" };

    public string this[int index]
    {
        get { return _names[index]; }
    }
}
十年九夏 2024-12-11 13:29:04

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

请参阅此处:

如何重载方括号运算符在 C# 中?

this is simply an overload of the square-bracket operator in C#.

see here:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文