Co to jest konstruktor prywatny i do czego służy?
Const i readonly - czym są, jakie mają zastosowania i czym się różnią?
© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci
Najważniejszą różnicą jest to, że wszystkie typy wartościowe trzymają dane na stosie, a referencyjne na stercie. Na stosie trzymany jest jedynie wskaźnik (referencja) do obszaru pamięci na stercie, gdzie przechowywane będą wartości dla stworzonego typu referencyjnego. Gdy zmienimy wartość typu referencyjnego, zmieni się wartość wszystkich zmiennych trzymających referencję do niej.
Tworząc typ referencyjny nigdy nie wiemy ile miejsca zajmie dany obiekt. W przypadku typów wartościowych znamy tę informację w momencie zadeklarowania. Na przykład w przypadku typu double będzie to 8 bajtów.
Kopiując type referencyjne nie możemy korzystać z operatora przypisania tak jak w przypadku typów wartościowych.
Typy wartościowe dziedziczą po klasie Object.ValueType natomiast referencyjne bezpośrednio po klasie Object.