#1 gripen
možná by bylo lepší aby sis koupil nějakou "méně strukturovanou" knížku o C# které budeš rozumět.
v principu jepravda, že "...proměnná referenčního typu je odkaz na místo v paměti..." ale v případě C# je reference tzv. handle neboli klíč, kterým memory management windows dokáže identifikovat nějaký objekt, který je umístěný buď na haldě nebo na zásobníku. C# bohužel už interně neumí říct programátorovi, jestli je objekt na haldě nebo na zásobníku, tohle určuje memory management windows v rámci systému CLI.
je nutné mít na paměti, že v C# jsou všechny proměnné typu objekt (kromě systému Marshal-ování). takže veškerý kecy typu "hodnotový typ", "referenční typ" prostě vynech a chápej to všechno jako proměnnou. A hlavně nezapomeň že i C# má konstanty
https://docs.microsoft.com/cs-cz/dotnet/csharp/language-reference/keywords/const
ideální bude když se naučíš ty datové typy
https://www.tutorialsteacher.com/csharp/csharp-data-types
je také nutné upozornit, že interně C# rozlišuje mezi tzv. "value class" a "ref class" a "value struct" a "ref struct", ale bohužel ty to už nevidíš .... něco o tom je napsáno tady
https://www.ecma-international.org/wp-content/uploads/ECMA-372_1st_edition_december_2005.pdf
ref class musíš vždy iniciovat příkazem new, ale value class nemusíš ... ale v C# je vše z pohledu programátora ref class a proto by si měl vše iniciovat příkazem new
https://stackoverflow.com/questions/1658985/what-is-a-value-class-and-what-is-a-reference-class-in-c
ta knížka co máš neni moc dobrá ... najdi si lepší
https://www.programming-book.com/?s=C+
https://1lib.cz/s/numerical%20mathematics
https://www.programming-book.com/cpp/