Typy wbudowane i "nie-zmienianie" ich stanu

Typy wbudowane i "nie-zmienianie" ich stanu
ZB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

Siemaneczko!
Mam taki kod

Kopiuj
    string a = "Jakis tekst";
	a.ToUpper();
	Console.WriteLine(a);

Jak nazywa się ta "właściwość" języka, że druga linijka (a.ToUpper()) nie zmienia stanu zmiennej 'a' tylko zwraca zmieniony string?

Dawid Farbaniec
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: ::1
  • Postów: 54
1

String jest obiektem niezmiennym czyli immutable.

Althorion
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1620
2

Metoda ToUpper() nie ma skutków ubocznych (side effects), jest czysta (pure). String faktycznie jest niezmienny, ale czyste metody można pisać dla dowolnych obiektów — tyle że te niezmienne mogą mieć tylko takie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.