Programovanie

Ako používať const, readonly a static v C #

Pri programovaní v jazyku C # sa často používajú kľúčové slová const, readonly a static. Aj keď majú tieto kľúčové slová dôležité rozdiely, majú tiež podobnosti, ktoré niekedy sťažujú vedieť, kedy ktoré z nich použiť. Tento článok pojednáva o konštantných, statických a iba na čítanie kľúčových slov v C #, o tom, ako sa porovnávajú a ako by sme ich mali používať v našich C # aplikáciách.

Ak chcete pracovať s príkladmi kódu uvedenými v tomto článku, mali by ste mať vo svojom systéme nainštalovanú aplikáciu Visual Studio 2019. Ak ešte nemáte kópiu, môžete si tu stiahnuť Visual Studio 2019.

Vytvorte projekt konzolovej aplikácie v Visual Studio 2019

Najprv si vytvoríme projekt konzolovej aplikácie .NET Core v Visual Studio. Za predpokladu, že je vo vašom systéme nainštalované Visual Studio 2019, vytvorte nový projekt konzolovej aplikácie .NET Core v Visual Studio podľa pokynov uvedených nižšie.

  1. Spustite Visual Studio IDE.
  2. Kliknite na „Vytvoriť nový projekt“.
  3. V okne „Vytvoriť nový projekt“ vyberte zo zobrazeného zoznamu šablón „Console App (.NET Core)“.
  4. Kliknite na Ďalej.
  5. V nasledujúcom okne „Konfigurácia nového projektu“ zadajte názov a umiestnenie nového projektu.
  6. Kliknite na tlačidlo Vytvoriť.

Týmto sa vytvorí nový projekt konzolovej aplikácie .NET Core v Visual Studio 2019. Tento projekt použijeme na ilustráciu použitia konštantných, iba na čítanie a statických kľúčových slov v jazyku C # v ďalších častiach tohto článku.

Použite kľúčové slovo const v C #

Kľúčové slovo const (read: constant) v C # sa používa na definovanie konštantnej premennej, t. J. Premennej, ktorej hodnota sa počas životnosti programu nezmení. Preto je nevyhnutné, aby ste konštantnej premennej priraďovali hodnotu v čase jej deklarácie.

Táto hodnota konštantnej premennej je tiež známa ako hodnota „kompilácie“. Premenné deklarované pomocou kľúčového slova const sú tiež známe ako konštanty kompilácie. Je potrebné poznamenať, že konštantná premenná je nemenná, to znamená, že hodnotu priradenú konštantnej premennej nie je možné neskôr zmeniť.

Nasledujúci úryvok kódu ilustruje, ako môžete definovať konštantu kompilácie pomocou kľúčového slova const v C #.

const string connectionString = "Sem zadajte reťazec vášho pripojenia k databáze.";

Pamätajte, že konštantnej premennej musíte priradiť hodnotu v čase, keď ju definujete. Upozorňujeme tiež, že na vytvorenie konštantného objektu nemôžete použiť kľúčové slovo const. Kľúčové slovo const je možné použiť iba na primitívne dátové typy (napríklad ints, floats, chars a booleans) a reťazce. Poďme si predstaviť použitie const na príklade.

Zvážte nasledujúcu triedu s názvom Autor. Triede Author dáme iba niekoľko vlastností, aby sme to uľahčili.

verejná trieda Autor

    {

public int Id {get; sada; }

verejný reťazec FirstName {get; sada; }

verejný reťazec Priezvisko {get; sada; }

public string Adresa {get; sada; }

    }

Ak sa teraz pokúsite vytvoriť konštantný objekt triedy Author pomocou kľúčového slova const, budete pozorovať chybu kompilácie uvedenú na obrázku 1 nižšie.

Táto chyba naznačuje, že pravá strana operátora priradenia by mala mať konštantnú hodnotu, aby uspokojila výraz. Pretože vyhlásenie nový autor () nie je konštanta, priradenie nie je platné, a teda chyba.

Použite kľúčové slovo readonly v C #

Kľúčové slovo readonly možno použiť na definovanie premennej alebo objektu iba na čítanie. To znamená, že premennej alebo objektu je možné priradiť hodnotu v rozsahu triedy alebo iba v konštruktore. Hodnotu nemôžete zmeniť alebo ju znova priradiť k premennej alebo objektu iba na čítanie inou metódou okrem konštruktora.

Poďme to pochopiť na príklade. Zvážte nasledujúcu triedu s názvom DbManager.

verejná trieda DbManager

    {

verejný reťazec iba na čítanie connectionString =

"Sem zadajte reťazec vášho pripojenia k databáze.";

verejný DbManager ()

        {

connectionString = "Tu môžete znova priradiť hodnotu.";

        }

public void ReAssign ()

        {

connectionString = "Toto nie je povolené";

        }

    }

Vyššie uvedený kód sa nebude kompilovať a zobrazí sa vám chyba uvedená na obrázku 2.

Použite statické kľúčové slovo v C #

Statické kľúčové slovo v C # je možné použiť na premennú, metódu alebo objekt. Upozorňujeme, že statický člen triedy patrí skôr do typu objektu ako do inštancie typu. Inými slovami, k statickým členom sa pristupuje s názvom triedy, nie s menom inštancie.

Zvážte nasledujúcu triedu s názvom Utility, ktorá obsahuje statickú metódu.

verejná trieda Utility

    {

public static void SomeMethod ()

        {

// Sem napíš svoj kód

        }

    }

Metódu nemôžete zavolať SomeMethod () pomocou inštancie triedy Utility. Túto metódu by ste mali skôr nazvať pomocou nasledujúcej syntaxe.

Utility.SomeMethod ();

Rovnaké pravidlo platí pre statickú premennú alebo statický objekt. Na statického člena triedy môžete odkazovať iba pomocou nižšie uvedenej syntaxe.

Názov triedy.Člen;

Alebo

Názov triedy.Člen ();

Konštruktor triedy môže byť statický. Na inicializáciu statických členov triedy sa používa statický konštruktor triedy. Statický konštruktor triedy však nemôže prijať parametre.

Pravidlo pre konštantné, iba na čítanie a statické

Tu je pravidlo, ktorým sa môžete riadiť pri práci s kľúčovými slovami const, readonly a static. Kľúčové slovo const použite, keď sa hodnota obsiahnutá v premennej nikdy počas životnosti aplikácie nezmení. Kľúčové slovo readonly použite, keď si nie ste istí, či je potrebné zmeniť hodnotu premennej objektu, ale chcete zabrániť iným hodnotám v zmene hodnoty. Kľúčové slovo static použite, ak chcete, aby člen triedy patril skôr k typu ako k inštancii typu.

Ako urobiť viac v C #:

  • Ako používať dátové anotácie v C #
  • Ako pracovať s identifikátormi GUID v C # 8
  • Kedy použiť abstraktné rozhranie vs. rozhranie v C #
  • Ako pracovať s AutoMapperom v C #
  • Ako používať výrazy lambda v C #
  • Ako pracovať s delegátmi Action, Func a Predicate v C #
  • Ako pracovať s delegátmi v C #
  • Ako implementovať jednoduchý záznamník v C #
  • Ako pracovať s atribútmi v C #
  • Ako pracovať s log4net v C #
  • Ako implementovať vzor návrhu úložiska v C #
  • Ako pracovať s odrazom v C #
  • Ako pracovať so súborovým systémom v C #
  • Ako vykonať lenivú inicializáciu v C #
  • Ako pracovať s MSMQ v C #
  • Ako pracovať s metódami rozšírenia v C #
  • Ako na nás výrazy lambda v C #
  • Kedy použiť volatile kľúčové slovo v C #
  • Ako používať kľúčové slovo výťažku v C #
  • Ako implementovať polymorfizmus v C #
  • Ako zostaviť vlastný plánovač úloh v C #
  • Ako pracovať s RabbitMQ v C #
  • Ako pracovať s n-ticí v C #
  • Skúmanie virtuálnych a abstraktných metód v C #
  • Ako používať Dapper ORM v C #
  • Ako používať návrhový vzor mušej váhy v C #
$config[zx-auto] not found$config[zx-overlay] not found