Solo hay una forma de simular esto.
Necesita crear su propia clase, con una matriz privada.
La implementación más similar de una matriz es un indizador:
El enlace '10 0,8' muestra la simulación de una matriz bidimensional.
Si implementa el indexador solo con un captador, el usuario solo puede leer los elementos, pero no escribirlos. Sin embargo, si cada elemento es un objeto (tipo de referencia), no puede evitar la modificación de las propiedades de los objetos accedidos.
Sin embargo, hay varias maneras de simular objetos "sólo lectura":
- crear una clase contenedora que expone las propiedades de cada elemento de la matriz como de sólo lectura propiedades, por lo que no pueden ser modificados
- Uso de los tipos de valor primitivas (como
int
)
- derrotar a los cambios, devolviendo una copia del elemento de la matriz privada en lugar del elemento original en la matriz privada, de modo que, los cambios realizados en el objeto no lo hacen afectar el objeto original en la matriz.
En otros lenguajes como C++ hay referencias y punteros a valores constantes, pero esto no existe en C#.
no hay nada integrado en las matrices multidimensionales afaik – BrokenGlass
Aquí hay algunas respuestas de una pregunta similar sobre StackOverflow - http://stackoverflow.com/questions/678379/is-there-a-read-only-generic-dictionary-available -in-net –
Eso no es muy similar, @ Scorpion-Prince. –