Niezmienny typ

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Mikołaj "Ty Niezmiennie" (prod. UNLUCKY x laybck)
Wideo: Mikołaj "Ty Niezmiennie" (prod. UNLUCKY x laybck)

Zawartość

Definicja - Co oznacza Immutable Type?

Niezmienny typ, w stożku C #, to typ obiektu, którego danych nie można zmienić po jego utworzeniu. Niezmienny typ ustawia właściwość lub stan obiektu jako tylko do odczytu, ponieważ nie można go modyfikować po przypisaniu podczas inicjowania.

Niezmienne typy zostały zaprojektowane z myślą o wydajnym zarządzaniu pamięcią i większej prędkości, co czyni je odpowiednimi dla obiektów wymagających synchronizacji. Niezmienność zapewnia lepszą czytelność kodu, wprowadzając zmiany w widoczności stanu programu i izolując operacje zmieniające stan od tych, które tego nie robią. Niezmienne typy zapewniają większe bezpieczeństwo niż typy zmienne.

Niezmienny typ jest używany, gdy dane mają zostać zachowane po jednokrotnym przypisaniu, ale bez konieczności zmiany danych w przyszłości. Ponieważ niezmienne obiekty nie zmieniają swojego stanu, są bardziej przydatne w scenariuszach wielowątkowych i wieloprocesowych, ponieważ wiele wątków może odczytać lub zapisać obiekt, co może powodować warunki wyścigowe i problemy z synchronizacją.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia Immutable Type

Obiekty typu niezmiennego można tworzyć za pomocą słów kluczowych „const” i „readonly”. Chociaż readonly pozwala na modyfikację pola w konstruktorze, const nie. Liczby, łańcuchy i null mogą być używane tylko jako pola const, które są naprawdę niezmienne. Readonly nie jest niezmienny, ponieważ umożliwia pisanie tylko raz. Dlatego nie jest stałą czasową kompilacji, jak pole const. Rzeczywiście niezmienne obiekty w ogóle nie zmieniają swojego stanu wewnętrznego i dlatego są z natury bezpieczne dla wątków.

Klasa System.String jest niezmiennym typem odniesienia zawartym w bibliotece klas środowiska .NET. Ta klasa tworzy nowy obiekt ciągu dla każdej akcji manipulacji ciągiem. Zawartość obiektów tego typu nie zmienia się, chociaż składnia sprawia, że ​​można ją zmienić. Ponadto ciąg znaków służy jako klucz tabeli skrótów do obliczania wartości skrótu, aby uniknąć ryzyka uszkodzenia struktury danych skrótu.

Główną wadą niezmiennych typów jest to, że wymagają one więcej zasobów niż inne typy obiektów.


Ta definicja została napisana w con C #