Przyszedł moment wyjaśnienia tematu, który być może powinien być omówiony dużo wcześniej zważywszy, że wcale nie jest trudny. Przywitajcie się ze słowem kluczowym "readonly" w języku C#! Sprawi ono, że wartość stanie się tylko do odczytu! A jakie są z tego płynące korzyści? No i jakie efekty?

TAGUJ ZMIENNĄ "READONLY" W JĘZYKU C#, ABY NIE MARTWIĆ SIĘ JEJ PÓŹNIEJSZĄ MODYFIKACJĄ!

"readonly" to kolejny z wielu modyfikatorów obowiązujących w "CSharpie", który sprawi że zmienna przestanie być zmienną, a stanie się daną tylko do odczytu. Chyba tak będzie najbezpieczniej napisać.

Wyjaśnienie jest proste. W sytuacji, gdy zmienna ma być odporna na modyfikacje, dorzucacie tytułowe słówko "readonly" w języku C# przed typem danych i to koniec Waszych zmartwień!

readonly int x = 15;

Najlepsze zastosowanie? Kiedy chcemy ochronić się przed modyfikacją - to chyba jasne! Efekt? Błąd kompilacji do którego przyczynia się każda instrukcja przypisania, bądź modyfikacji:

x = 6;	// błąd
x += 14;	// błąd

I tak dalej, i tak dalej…

OPCJA DEFINIOWANIA W KONSTRUKTORZE

"readonly" w języku C# możemy jak najbardziej użyć też w stosunku do danych składowych klasy. Mało tego, mamy prawo do zdefiniowania wartości tylko do odczytu także wewnątrz konstruktora! Jednak zapomnijcie o całej reszcie metod! Dlaczego? Bo tylko konstruktor wywołuje się ZANIM obiekt będzie gotowy do użytku, a w tym jest cały "clue" żeby wartość stała się wartością tylko do odczytu. Gdyby dało się taką możliwość metodzie wywoływanej po utworzeniu obiektu, cały sens tego mechanizmu zostałby zaprzeczony:

class MyClass
{
	public readonly int value;
	
	public MyClass()
	{
		value = 6;
	}
}

Co więcej, dozwolone jest podwójne zdefiniowanie wartości, zarówno w linijce zadeklarowania zmiennej, jak i w konstruktorze:

class MyClass
{
	public readonly int value = 17;
	
	public MyClass()
	{
		value = 6;
	}
}

Gdyby tak się to zrobiło, to pamiętajcie że obowiązuje ta wartość, która została zdefiniowana w konstruktorze!

Słowo kluczowe "readonly" w języku C#

Modyfikator "readonly" w języku C# nakłada zabezpieczenie na zmienną, która wówczas staje się wartością tylko do odczytu.


Nie odchodźcie daleko od mojej witryny. Już niedługo drugi luźno powiązany wątek, lecz o słowie "const"!

PODOBNE ARTYKUŁY