Kako koristiti const, readonly i static u C #

Ključne riječi const, readonly i static često se koriste prilikom programiranja na C #. Međutim, iako ove ključne riječi imaju važne razlike, one također imaju sličnosti zbog kojih je ponekad teško znati kada koristiti koju. Ovaj članak govori o const, statičkim i samo za čitanje ključne riječi u C #, kako se uspoređuju i kako bismo ih trebali koristiti u našim C # aplikacijama.

Da biste radili s primjerima koda iz ovog članka, u sustavu biste trebali instalirati Visual Studio 2019. Ako još nemate kopiju, ovdje možete preuzeti Visual Studio 2019. 

Stvorite projekt aplikacije konzole u Visual Studio 2019

Prvo, kreirajmo projekt aplikacije .NET Core konzole u Visual Studiju. Pod pretpostavkom da je Visual Studio 2019 instaliran u vašem sustavu, slijedite korake opisane u nastavku da biste u Visual Studiju stvorili novi projektni program konzole .NET Core.

  1. Pokrenite Visual Studio IDE.
  2. Kliknite "Stvori novi projekt".
  3. U prozoru "Stvori novi projekt" s popisa predložaka odaberite "Aplikacija konzole (.NET Core)".
  4. Kliknite Dalje.
  5. U sljedećem prozoru "Konfiguriranje novog projekta" navedite naziv i mjesto za novi projekt.
  6. Kliknite Stvori.

To će stvoriti novi projektni program konzole .NET Core u Visual Studiju 2019. Ovaj ćemo projekt upotrijebiti za ilustraciju upotrebe ključnih riječi const, readonly i static u C # u sljedećim odjeljcima ovog članka.

Upotrijebite ključnu riječ const u C #

Ključna riječ const (čitaj: konstanta) u C # koristi se za definiranje konstante varijable, tj. Varijable čija se vrijednost neće promijeniti tijekom životnog vijeka programa. Stoga je nužno dodijeliti vrijednost konstantnoj varijabli u trenutku njezine deklaracije.

Ova vrijednost konstantne varijable poznata je i kao vrijednost "vremena kompajliranja". Varijable deklarirane pomoću ključne riječi const poznate su i kao konstante vremena kompajliranja. Treba napomenuti da je konstantna varijabla nepromjenjiva, tj. Vrijednost koja se dodjeljuje konstantnoj varijabli ne može se kasnije mijenjati.

Sljedeći isječak koda ilustrira kako možete definirati konstantu vremena kompajliranja pomoću ključne riječi const u C #.

const string connectionString = "Ovdje navedite svoj niz veze baze podataka.";

Imajte na umu da konstantnoj varijabli morate dodijeliti vrijednost u trenutku kada je definirate. Također imajte na umu da za stvaranje konstantnog objekta ne možete koristiti ključnu riječ const. Ključna riječ const može se primijeniti samo na primitivne vrste podataka (kao što su ints, floats, chars i booleans) i nizove. Razumijemo upotrebu consta na primjeru.

Razmotrite sljedeći razred s imenom Autor. Klasi Author dodijelit ćemo samo nekoliko svojstava kako bismo je pojednostavili.

javni razred Autor

    {

        javni int Id {get; postavljen; }

        javni niz FirstName {get; postavljen; }

        javni niz LastName {get; postavljen; }

        javni niz Adresa {get; postavljen; }

    }

Ako pokušate stvoriti konstantni objekt klase Author pomoću ključne riječi const, primijetit ćete pogrešku kompilacije prikazanu na slici 1 dolje.

Ova pogreška ukazuje na to da bi desna strana operatora dodjele trebala imati konstantnu vrijednost da zadovolji izraz. Budući da izjava new Author()nije konstanta, dodjela nije valjana i otuda je pogreška.

Upotrijebite ključnu riječ readonly u C #

Ključna riječ readonly može se koristiti za definiranje varijable ili objekta samo za čitanje. To znači da se varijabli ili objektu može dodijeliti vrijednost u opsegu klase ili samo u konstruktoru. Ne možete promijeniti vrijednost niti preusmjeriti vrijednost u varijablu samo za čitanje ili objekt bilo kojom drugom metodom osim konstruktorom.

Shvatimo to na primjeru. Razmotrite sljedeću klasu pod nazivom DbManager.

javna klasa DbManager

    {

        javni string samo za čitanje connectionString =

        "Ovdje navedite svoj niz veze baze podataka.";

        javni DbManager ()

        {

            connectionString = "Ovdje možete dodijeliti vrijednost.";

        }

        javna praznina ReAssign ()

        {

            connectionString = "Ovo nije dopušteno";

        }

    }

Gornji kod se neće sastaviti i prikazat će vam se pogreška prikazana na slici 2.

Upotrijebite statičnu ključnu riječ u C #

Statična ključna riječ u C # može se koristiti na varijabli, metodi ili objektu. Imajte na umu da statički član klase pripada tipu objekta, a ne instanci tipa. Drugim riječima, statičkim članovima se pristupa imenom klase, a ne imenom instance. 

Razmotrite sljedeću klasu pod nazivom Uslužni program koja sadrži statičku metodu.

komunalna služba javnog staleža

    {

        javna statička praznina SomeMethod ()

        {

            // Ovdje napišite svoj kod

        }

    }

Ne možete pozvati metodu SomeMethod()pomoću instance klase Utility. Umjesto toga, ovu biste metodu trebali nazvati koristeći sljedeću sintaksu.

Utility.SomeMethod ();

Isto se pravilo odnosi na statičku varijablu ili statični objekt. Na statičnog člana klase možete se pozivati ​​samo pomoću dolje prikazane sintakse.

Ime klase . Član;

Ili

Ime klase . Član();

Konstruktor klase može biti statičan. Statički konstruktor klase koristi se za inicijalizaciju statičkih članova klase. Međutim, statički konstruktor klase ne može prihvatiti parametre.

Pravilo za const, samo za čitanje i statično

Evo pravila palca kojeg se možete pridržavati rada s const, readonly i static ključnim riječima. Upotrijebite ključnu riječ const kada se vrijednost sadržana u varijabli nikada neće promijeniti tijekom trajanja aplikacije. Upotrijebite ključnu riječ readonly kada niste sigurni treba li vrijednost varijable objekta promijeniti, ali želite spriječiti da druge klase promijene vrijednost. Upotrijebite statičnu ključnu riječ kada želite da član klase pripada tipu, a ne instanci tipa.

Kako učiniti više u C #:

  • Kako koristiti bilješke podataka u C #
  • Kako raditi s GUID-ovima u C # 8
  • Kada koristiti apstraktnu klasu naspram sučelja u C #
  • Kako raditi s AutoMapperom u C #
  • Kako koristiti lambda izraze u C #
  • Kako raditi s delegatima Action, Func i Predicate u C #
  • Kako raditi s delegatima u C #
  • Kako implementirati jednostavni zapisnik u C #
  • Kako raditi s atributima u C #
  • Kako raditi s log4netom na C #
  • Kako implementirati obrazac dizajna spremišta u C #
  • Kako raditi s refleksijom u C #
  • Kako raditi s nadzornikom datoteka u C #
  • Kako izvesti lijenu inicijalizaciju u C #
  • Kako raditi s MSMQ-om u C #
  • Kako raditi s metodama produženja u C #
  • Kako do nas lambda izrazi u C #
  • Kada upotrijebiti hlapljivu ključnu riječ u C #
  • Kako koristiti ključnu riječ yield u C #
  • Kako implementirati polimorfizam u C #
  • Kako izraditi vlastiti planer zadataka u C #
  • Kako raditi s RabbitMQ u C #
  • Kako raditi s korpicom u C #
  • Istraživanje virtualnih i apstraktnih metoda u C #
  • Kako koristiti Dapper ORM u C #
  • Kako koristiti uzorak dizajna muhe u C #