Programování

Jak používat const, readonly a static v C #

Klíčová slova const, readonly a static se často používají při programování v C #. I když tato klíčová slova mají důležité rozdíly, mají také podobnosti, díky nimž je někdy těžké zjistit, kdy které použít. Tento článek popisuje klíčová slova const, static a readonly v C #, jak se porovnávají a jak bychom je měli používat v našich C # aplikacích.

Chcete-li pracovat s příklady kódu uvedenými v tomto článku, měli byste mít ve svém systému nainstalovanou Visual Studio 2019. Pokud ještě nemáte kopii, můžete si stáhnout Visual Studio 2019 zde.

Vytvořte projekt konzolové aplikace v Visual Studio 2019

Nejprve si vytvořme projekt konzolové aplikace .NET Core v sadě Visual Studio. Za předpokladu, že je ve vašem systému nainstalovaná sada Visual Studio 2019, postupujte podle níže uvedených kroků a vytvořte nový projekt konzolové aplikace .NET Core v sadě Visual Studio.

  1. Spusťte Visual Studio IDE.
  2. Klikněte na „Vytvořit nový projekt“.
  3. V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Console App (.NET Core)“.
  4. Klikněte na Další.
  5. V dalším okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
  6. Klikněte na Vytvořit.

Tím se vytvoří nový projekt aplikace konzoly .NET Core v sadě Visual Studio 2019. Tento projekt použijeme k ilustraci použití const, readonly a static klíčových slov v C # v následujících částech tohoto článku.

Použijte klíčové slovo const v C #

Klíčové slovo const (read: constant) v C # se používá k definování konstantní proměnné, tj. Proměnné, jejíž hodnota se během životnosti programu nezmění. Proto je bezpodmínečně nutné přiřadit hodnotu konstantní proměnné v době její deklarace.

Tato hodnota konstantní proměnné je také známá jako hodnota „kompilace“. Proměnné deklarované pomocí klíčového slova const jsou také známé jako konstanty v době kompilace. Je třeba poznamenat, že konstantní proměnná je neměnná, tj. Hodnotu přiřazenou konstantní proměnné nelze později změnit.

Následující fragment kódu ukazuje, jak můžete definovat konstantu kompilace pomocí klíčového slova const v C #.

const string connectionString = "Zde zadejte řetězec připojení k databázi.";

Všimněte si, že musíte konstantní proměnné přiřadit hodnotu v době, kdy ji definujete. Všimněte si také, že klíčové slovo const nemůžete použít k vytvoření objektu konstanty. Klíčové slovo const lze použít pouze na primitivní datové typy (například ints, floats, chars a booleans) a řetězce. Pojďme pochopit použití const na příkladu.

Zvažte následující třídu s názvem Autor. Třídě Author dáme jen několik vlastností, aby to bylo jednodušší.

veřejná třída Autor

    {

public int Id {get; soubor; }

public string FirstName {get; soubor; }

veřejný řetězec Příjmení {get; soubor; }

public string Adresa {get; soubor; }

    }

Pokud se nyní pokusíte vytvořit konstantní objekt třídy Author pomocí klíčového slova const, budete pozorovat chybu kompilace zobrazenou na obrázku 1 níže.

Tato chyba označuje, že pravá strana operátoru přiřazení by měla mít konstantní hodnotu, aby uspokojila výraz. Protože prohlášení nový autor () není konstanta, přiřazení není platné, a tedy chyba.

Použijte klíčové slovo jen pro čtení v C #

Klíčové slovo readonly lze použít k definování proměnné nebo objektu jako pouze ke čtení. To znamená, že proměnné nebo objektu lze přiřadit hodnotu pouze v rozsahu třídy nebo v konstruktoru. Hodnotu nemůžete změnit ani přiřadit hodnotu proměnné nebo objektu jen pro čtení v žádné jiné metodě kromě konstruktoru.

Pochopme to na příkladu. Zvažte následující třídu s názvem DbManager.

veřejná třída DbManager

    {

public readonly string connectionString =

"Zde zadejte řetězec připojení k databázi.";

public DbManager ()

        {

connectionString = "Zde můžete znovu přiřadit hodnotu.";

        }

public void ReAssign ()

        {

connectionString = "Toto není povoleno";

        }

    }

Výše uvedený kód nebude kompilován a zobrazí se vám chyba uvedená na obrázku 2.

Použijte statické klíčové slovo v C #

Statické klíčové slovo v C # lze použít na proměnnou, metodu nebo objekt. Všimněte si, že statický člen třídy patří spíše k typu objektu než k instanci typu. Jinými slovy, ke statickým členům se přistupuje pomocí názvu třídy, nikoli podle názvu instance.

Zvažte následující třídu s názvem Utility, která obsahuje statickou metodu.

veřejná třída Utility

    {

public static void SomeMethod ()

        {

// Sem napište kód

        }

    }

Metodu nelze zavolat SomeMethod () pomocí instance třídy Utility. Spíše byste měli volat tuto metodu pomocí následující syntaxe.

Utility.SomeMethod ();

Stejné pravidlo platí pro statickou proměnnou nebo statický objekt. Na statického člena třídy můžete odkazovat pouze pomocí níže uvedené syntaxe.

Jméno třídy.Člen;

Nebo

Jméno třídy.Člen();

Konstruktor třídy může být statický. Statický konstruktor třídy se používá k inicializaci statických členů třídy. Statický konstruktor třídy však nemůže přijmout parametry.

Pravidlo pro const, readonly a static

Tady je pravidlo, kterým se můžete řídit při práci s const, readonly a statickými klíčovými slovy. Klíčové slovo const použijte, když se hodnota obsažená v proměnné nikdy během životnosti aplikace nezmění. Pokud si nejste jisti, zda je třeba změnit hodnotu proměnné objektu, použijte klíčové slovo readonly, ale chcete zabránit jiným třídám ve změně hodnoty. Použijte statické klíčové slovo, když chcete, aby člen třídy patřil k typu, nikoli k instanci typu.

Jak udělat více v C #:

  • Jak používat datové anotace v C #
  • Jak pracovat s identifikátory GUID v C # 8
  • Kdy použít abstraktní třídu vs. rozhraní v C #
  • Jak pracovat s AutoMapperem v C #
  • Jak používat výrazy lambda v C #
  • Jak pracovat s delegáty Action, Func a Predicate v C #
  • Jak pracovat s delegáty v C #
  • Jak implementovat jednoduchý záznamník v C #
  • Jak pracovat s atributy v C #
  • Jak pracovat s log4net v C #
  • Jak implementovat vzor návrhu úložiště v C #
  • Jak pracovat s odrazem v C #
  • Jak pracovat se souborovým systémem v C #
  • Jak provést línou inicializaci v C #
  • Jak pracovat s MSMQ v C #
  • Jak pracovat s metodami rozšíření v C #
  • Jak na nás lambda výrazy v C #
  • Kdy použít volatilní klíčové slovo v C #
  • Jak používat klíčové slovo výnos v C #
  • Jak implementovat polymorfismus v C #
  • Jak vytvořit svůj vlastní plánovač úloh v C #
  • Jak pracovat s RabbitMQ v C #
  • Jak pracovat s n-ticí v C #
  • Zkoumání virtuálních a abstraktních metod v C #
  • Jak používat Dapper ORM v C #
  • Jak používat návrhový vzor muší váhy v C #
$config[zx-auto] not found$config[zx-overlay] not found