¿Cuál es la diferencia entre indexadores y matrices en C#?
No es necesario declarar los indexadores y se pueden usar directamente en la clase que declara el indexador.
La principal diferencia entre un indexador y una matriz es que
el tipo de valor de índice del indexador no es necesariamente un número entero.
El valor de índice utilizado para acceder a la matriz debe ser un número entero, pero el indexador puede definir otros tipos de valores de índice.
El indexador permite la sobrecarga.
Una clase no se limita a definir un solo indexador. Una clase puede tener muchos indexadores y usted puede sobrecargar sus funciones siempre que las firmas de funciones de los indexadores sean diferentes.
Los indexadores no son variables.
La diferencia entre índices y arrays es que los indexadores no se corresponden directamente con los almacenes de datos de referencia, mientras que los arrays sí. Los indexadores tienen accesos get y accesos set, que se utilizan para indicar el código que se ejecutará al leer o escribir el elemento de índice.
En su ejemplo, hay una matriz o colección int dentro de MyClass, y el índice que utiliza en realidad hace referencia a la clase de colección interna.