“Extraña” syntax de propiedad C #

Acabo de ver esto en el proyecto de CA #:

public char this[int index] 

Me considero nuevo en C #; cualquiera puede ayudar a lo que significa?

Es un indexador.

Los indexadores permiten indexar las instancias de una clase o estructura como las matrices. Los indexadores se parecen a las propiedades, excepto que sus descriptores toman parámetros. Un indexador proporciona una syntax similar a una matriz. Permite acceder a un tipo de la misma manera que una matriz. Las propiedades como los indexadores suelen acceder a una tienda de respaldo. A menudo aceptamos un parámetro de tipo int y accedemos a un almacén de respaldo de tipo array.

Léelo de http://www.dotnetperls.com/indexer

 string s = "hello"; Console.WriteLine (s[0]); // 'h' Console.WriteLine (s[3]); // 'l' 

Implementando un indexador

Para escribir un indexador, defina una propiedad llamada this, especificando los argumentos entre corchetes. Por ejemplo:

 class Sentence { string[] words = "The quick brown fox".Split(); public string this [int wordNum] // indexer { get { return words [wordNum]; } set { words [wordNum] = value; } } } 

Así es como podríamos usar este indexador:

 Sentence s = new Sentence(); Console.WriteLine (s[3]); // fox s[3] = "kangaroo"; Console.WriteLine (s[3]); // kangaroo 

Un tipo puede declarar múltiples indexadores, cada uno con parámetros de diferentes tipos. Un indexador también puede tomar más de un parámetro:

 public string this [int arg1, string arg2] { get { ... } set { ... } } 

Los indexadores comstackn internamente los métodos llamados get_Item y set_Item , de la siguiente manera:

 public string get_Item (int wordNum) {...} public void set_Item (int wordNum, string value) {...} 

El comstackdor elige el nombre Item por defecto; en realidad puede cambiar esto decorando su indexador con el siguiente atributo:

 [System.Runtime.CompilerServices.IndexerName ("Blah")] 

esto se llama indexer .

  • Indexador
  • Implementación de C ++ de la propiedad de C # y indexador con modificadores de acceso

Eso se llama indexador . Lea más sobre ellos en MSDN .