Programovanie

Ako pracovať s identifikátormi GUID v C # 8

Pri práci v aplikáciách možno budete musieť často používať globálne jedinečné identifikátory (GUID). Jedinečné identifikátory, ako napríklad primárne kľúče v databáze SQL, zabezpečia, aby dôležité objekty, ako sú zákazníci a faktúry, neboli duplikované alebo prepisované. Bez jedinečných identifikátorov by sme nemohli zabrániť strate údajov alebo zabezpečiť integritu údajov našich aplikácií.

Globálne jedinečný identifikátor alebo GUID predstavuje gigantické identifikačné číslo - číslo také veľké, že je matematicky zaručené, že bude jedinečné nielen v jednom systéme, ako je databáza, ale vo viacerých systémoch alebo distribuovaných aplikáciách. Tento článok pojednáva o tom, prečo potrebujeme identifikátory GUID a ako môžeme pracovať s identifikátormi GUID v C # 8.0.

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

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, postupujte podľa krokov uvedených nižšie a vytvorte nový projekt konzolovej aplikácie .NET Core v Visual Studio.

  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 prácu s identifikátormi GUID v ďalších častiach tohto článku. Upozorňujeme, že tu budeme používať jazyk C # 8, takže možno budete chcieť vo svojom projekte aktualizovať jazykovú verziu.

Prečo potrebujeme identifikátory GUID?

Predstavte si, že máte aplikáciu v mieste predaja, ktorá je vo vašej mobilnej aplikácii k dispozícii v režime online aj offline. Predpokladajme, že vaša aplikácia poskytuje identifikačné čísla, ktoré sa generujú automaticky od 1. Ako môžete zlúčiť údaje offline po obnovení pripojenia? Čo ak boli vaše identifikačné čísla vygenerované v oboch režimoch? Môže dôjsť ku kolízii, však? Ako by ste zaobchádzali s duplicitnými identifikačnými číslami? Toto by ste určite zvládli, ale museli by ste napísať veľa kódu - čo nie je to, čo chcete robiť.

Tu prichádzajú na pomoc identifikátory GUID. GUID je obrovské číslo - 128 bitov dlhé - a je takmer jedinečné. Prečo takmer jedinečný? Prečo nemôžeme povedať, že je jedinečný? Počet možných identifikátorov GUID je v zásade taký veľký, že pravdepodobnosť kolízie je extrémne minimálna. Šanca na kolíziu však nie je nulová.

Identifikátory GUID môžete využiť tak, že sa stanete primárnymi kľúčmi pre vaše databázové tabuľky. Používanie identifikátorov GUID vám dokonca pomôže vyhnúť sa konfliktom pri zlúčení, keď zlučujete dve alebo viac databáz. Ďalšou výhodou identifikátorov GUID je, že ich môžete generovať offline - nemusíte byť pripojení k sieti alebo internetu.

Ako sú zobrazené GUID?

Nasleduje príklad identifikátora GUID. Upozorňujeme, že identifikátor GUID má zvyčajne 128 bitov a je vyjadrený v šestnástkovej sústave.

eaa24756-3fac-4e46-b4bb-074ff4f5b846

Identifikátor GUID je organizovaný ako presne definovaná sekvencia 32 hexadecimálnych číslic zoskupených do častí 8-4-4-4-12. Preto môžete mať maximálne 2 ^ 128 identifikátorov GUID.

Vytvorte GUID v C # 8

V tejto časti sa dozvieme, ako môžeme pracovať s identifikátormi GUID v jazyku C #. Identifikátory GUID môžete vytvoriť v .NET pomocou štruktúry Guid dostupnej ako súčasť priestoru názvov systému. Tu je najjednoduchší spôsob generovania GUID v C #. Nasledujúci kód zapíšte do metódy Main () súboru Program.cs v projekte, ktorý ste vytvorili skôr.

Guid obj = Guid.NewGuid ();

Console.WriteLine ("Novo vytvorený sprievodca je:" + obj.ToString ());

Console.ReadKey ();

Vytvorte prázdny GUID v C # 8

Pretože Guid je štruktúra, je to typ hodnoty, a preto ho nemôžete nastaviť na hodnotu null. Ak chcete vytvoriť prázdne príručky, môžete napísať nasledujúci kód.

Guid id = new Guid ();

if (id == Guid.Empty)

Console.WriteLine ("Sprievodca je prázdny");

Guid.Empty má hodnotu 00000000-0000-0000-0000-000000000000. Môžete využiť prázdny identifikátor GUID na porovnanie s iným objektom GUID a zistiť, či nie je nenulový. Ilustruje to nasledujúci úryvok kódu.

if (guid! = Guid.Empty) {

// Objekt GUID obsahuje nenulové hodnoty

}

inak

{

// Objekt GUID je prázdny

Tu je jednoduchá metóda rozšírenia, ktorá určuje, či je identifikátor GUID Guid.Empty.

public static bool IsNullOrEmpty (tento Guid guid)

{

návrat (guid == Guid.Prázdny);

Pomocou nasledujúcej metódy rozšírenia môžete dokonca skontrolovať, či je váš nulový identifikátor GUID nulový.

public static bool IsNullOrEmpty (tento Guid? guid)

{

if (guid.HasValue)

if (guid == predvolené (Guid))

návrat pravdivý;

návrat nepravdivý;

}

Upozorňujeme, že predvolená hodnota (Guid) je rovnaká ako hodnota Guid.Empty.

Preveďte GUID na reťazec v C # 8

Môžete dokonca previesť identifikátor GUID na reťazec. Nasledujúci úryvok kódu ukazuje, ako môžete previesť prázdny identifikátor GUID na reťazec.

string str = Guid.Empty.ToString ();

Console.WriteLine (str);

Upozorňujeme, že pri používaní identifikátorov GUID existuje jedna veľká výhrada: Môže dôjsť ku kolízii. Upozorňujeme tiež, že identifikátory GUID zaberajú určitý priestor a nie sú generované v postupnom poradí. Môžete však vytvoriť svoj identifikátor GUID jedinečný programovo pomocou 128-bitového celého čísla, ktoré je možné reprezentovať pomocou dvoch hodnôt ULong a postupným zvyšovaním.

Možno budete chcieť vo svojich aplikáciách často prevádzať identifikátor GUID na reťazec. Možno to budete musieť urobiť, aby ste naviazali údaje GUID na svoje ovládacie prvky údajov alebo aby ste GUID preniesli do používateľského rozhrania. Možno budete chcieť previesť objekt GUID na reťazec, ktorý naformátuje údaje GUID podľa vašich požiadaviek.

Identifikátory GUID môžete vytvoriť niekoľkými rôznymi spôsobmi. Patria sem náhodné, časové, hardvérové ​​a obsahové (t. J. Na základe hašovanej hodnoty MD5 alebo SHA-1 časti údajov). Všetky tieto spôsoby a ďalšie pokročilé funkcie identifikátorov GUID vás prevediem v budúcom článku tu.

Ako urobiť viac v C #

  • 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 #
$config[zx-auto] not found$config[zx-overlay] not found