Istnieje tylko jeden sposób symulacji tego.
Musisz utworzyć własną klasę z prywatną tablicą.
Najbardziej podobna realizacja tablicy jest indekser:
'10 0,8' Link pokazuje symulację dwuwymiarowego tablicy.
Jeśli zaimplementujesz indeksator tylko z programem pobierającym, użytkownik może tylko odczytać elementy, ale ich nie zapisywać. Jeśli jednak każdy element jest obiektem (typem odniesienia), nie można zapobiec modyfikacji właściwości dostępu do obiektów.
Jednakże, istnieje kilka sposobów symulacji „tylko do odczytu” obiekty:
- utworzyć klasy otoki, który eksponuje właściwości każdego elementu tablicy jako tylko do odczytu właściwości, tak że nie mogą one być modyfikowane
- Korzystanie typy wartości pierwotnych (jak
int
)
- Pokonanie zmian poprzez zwrot kopii elementu w prywatnej tablicy zamiast oryginalnego elementu w prywatnej tablicy, tak, że zmiany wprowadzone do obiektu nie wpływa na oryginalny obiekt w tablicy.
W innych językach, takich jak C++, istnieją odniesienia i wskaźniki do wartości stałych, ale nie ma ich w języku C#.
Nic nie jest wbudowane w wielowymiarowe tablice afaik – BrokenGlass
Oto kilka odpowiedzi z podobnego pytania na StackOverflow - http://stackoverflow.com/questions/678379/is-there-a-read-only-generic-dictionary-available -in-net –
To nie jest bardzo podobne, @ Skorpion-Prince. –