我刚刚在c#项目中看到过这个:
public char this[int index]
我认为自己是C#的新手;任何人都可以帮助它的意义吗?
答案 0 :(得分:15)
这是一个索引器。
索引器允许对类或结构的实例进行索引 阵列。索引器类似于属性,除了它们的访问器 参数。 索引器提供类似于数组的语法。它允许访问类型 与数组相同。索引器等属性经常访问a 支持商店。我们经常接受int类型的参数并访问a 支持数组类型的存储。
从http://www.dotnetperls.com/indexer
阅读string s = "hello";
Console.WriteLine (s[0]); // 'h'
Console.WriteLine (s[3]); // 'l'
实施索引器
要编写索引器,请定义一个名为this的属性,以square为单位指定参数 括号。例如:
class Sentence
{
string[] words = "The quick brown fox".Split();
public string this [int wordNum] // indexer
{
get { return words [wordNum]; }
set { words [wordNum] = value; }
}
}
以下是我们如何使用此索引器:
Sentence s = new Sentence();
Console.WriteLine (s[3]); // fox
s[3] = "kangaroo";
Console.WriteLine (s[3]); // kangaroo
类型可以声明多个索引器,每个索引器都具有不同类型的参数。一个 indexer也可以使用多个参数:
public string this [int arg1, string arg2]
{
get { ... } set { ... }
}
索引器在内部编译为名为get_Item
和set_Item
的方法,如下所示:
public string get_Item (int wordNum) {...}
public void set_Item (int wordNum, string value) {...}
编译器默认选择名称Item
- 您实际上可以通过此更改
使用以下属性装饰您的索引器:
[System.Runtime.CompilerServices.IndexerName ("Blah")]
答案 1 :(得分:7)
答案 2 :(得分:7)
这称为索引器。详细了解他们at MSDN。