Programování

Jak pracovat s identifikátory GUID v C # 8

Při práci v aplikacích možná budete muset použít Globálně jedinečné identifikátory (GUID). Jedinečné identifikátory, jako jsou primární klíče v databázi SQL, zajišťují, že důležité objekty, jako jsou zákazníci a faktury, nebudou duplikovány ani přepsány. Bez jedinečných identifikátorů bychom nemohli zabránit ztrátě dat nebo zajistit integritu dat našich aplikací.

Globálně jedinečný identifikátor nebo GUID představuje gigantické identifikační číslo - číslo tak velké, že je matematicky zaručeno, že bude jedinečné nejen v jediném systému, jako je databáze, ale ve více systémech nebo distribuovaných aplikacích. Tento článek pojednává o tom, proč potřebujeme identifikátory GUID a jak můžeme pracovat s identifikátory GUID v C # 8.0.

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 sadě Visual Studio

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 pro práci s identifikátory GUID v následujících částech tohoto článku. Všimněte si, že zde budeme používat C # 8, takže možná budete chtít ve svém projektu aktualizovat jazykovou verzi.

Proč potřebujeme identifikátory GUID?

Představte si, že máte ve své mobilní aplikaci aplikaci v místě prodeje, která je k dispozici v online i offline režimu. Předpokládejme, že vaše aplikace poskytuje identifikační čísla, která se automaticky generují od 1. Jak můžete sloučit offline data, když je připojení obnoveno? Co když byla vaše identifikační čísla vygenerována v obou režimech? Může dojít ke kolizi, že? Jak byste zacházeli s duplicitními identifikačními čísly? Určitě byste to zvládli, ale museli byste napsat hodně kódu - což není to, co chcete dělat.

Zde přicházejí na pomoc identifikátory GUID. Identifikátor GUID je gigantické číslo - 128 bitů dlouhé - a je téměř jedinečné. Proč téměř jedinečný? Proč nemůžeme říci, že je jedinečný? V zásadě je počet možných identifikátorů GUID tak velký, že šance na kolizi jsou extrémně minimální. Šance na kolizi však nejsou nulové.

Můžete využít výhody identifikátorů GUID tím, že se stanete primárními klíči pro vaše databázové tabulky. Použití identifikátorů GUID vám dokonce pomůže vyhnout se konfliktům při slučování při slučování dvou nebo více databází. Další výhodou identifikátorů GUID je, že je můžete generovat offline - nemusíte být připojeni k síti nebo internetu.

Jak jsou identifikovány identifikátory GUID?

Následuje příklad identifikátoru GUID. Upozorňujeme, že identifikátor GUID je obvykle 128 bitů dlouhý a je vyjádřen v šestnáctkové soustavě.

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

Identifikátor GUID je organizován jako přesně definovaná sekvence 32 hexadecimálních číslic seskupených do bloků 8-4-4-4-12. Proto můžete mít maximálně 2 ^ 128 GUID.

Vytvořte GUID v C # 8

V této části se naučíme, jak můžeme pracovat s identifikátory GUID v jazyce C #. Můžete vytvořit identifikátory GUID v .NET pomocí struktury Guid dostupné jako součást oboru názvů systému. Tady je nejjednodušší způsob, jak vygenerovat GUID v C #. Napište následující kód v metodě Main () souboru Program.cs v projektu, který jste vytvořili dříve.

Guid obj = Guid.NewGuid ();

Console.WriteLine ("Nově vytvořený Guid je:" + obj.ToString ());

Console.ReadKey ();

Vytvořte prázdný GUID v C # 8

Protože Guid je struktura, jedná se o typ hodnoty, a proto jej nemůžete nastavit na null. Chcete-li vytvořit prázdné vodítka, můžete napsat následující kód.

Guid id = new Guid ();

if (id == Guid.Empty)

Console.WriteLine ("GUID je prázdný");

Guid.Empty má hodnotu 00000000-0000-0000-0000-000000000000. Prázdný identifikátor GUID můžete využít k porovnání s jiným objektem GUID a určit, zda je nenulový. Následující fragment kódu to ilustruje.

if (guid! = Guid.Empty) {

// Objekt GUID obsahuje nenulové hodnoty

}

jiný

{

// Objekt GUID je prázdný

Zde je jednoduchá metoda rozšíření, která určuje, zda je identifikátor GUID Guid.Empty.

public static bool IsNullOrEmpty (tento Guid guid)

{

návrat (guid == Guid.Empty);

Pomocí následující metody rozšíření můžete dokonce zkontrolovat, zda je váš identifikátor GUID s povolenou hodnotou Null null.

public static bool IsNullOrEmpty (tento Guid? guid)

{

if (guid.HasValue)

if (guid == výchozí (Guid))

návrat true;

návrat false;

}

Všimněte si, že výchozí (Guid) je stejný jako Guid.Empty.

Převést identifikátor GUID na řetězec v jazyce C # 8

Můžete dokonce převést identifikátor GUID na řetězec. Následující fragment kódu ukazuje, jak můžete převést prázdný identifikátor GUID na řetězec.

string str = Guid.Empty.ToString ();

Console.WriteLine (str);

Všimněte si, že při používání identifikátorů GUID existuje jedna hlavní výhrada: Může dojít ke kolizím. Všimněte si také, že identifikátory GUID zabírají určitý prostor a nejsou generovány v postupném pořadí. Můžete však vytvořit svůj identifikátor GUID jedinečný programově pomocí 128bitového celého čísla, které lze reprezentovat pomocí dvou hodnot ULong a jeho postupného zvyšování.

Možná budete chtít převést identifikátor GUID na řetězec často ve svých aplikacích. Možná budete muset udělat, abyste svázali data GUID s vašimi datovými ovládacími prvky nebo předali identifikátor GUID do uživatelského rozhraní. Můžete dokonce chtít převést objekt GUID na řetězec pro formátování dat GUID podle vašich požadavků.

Identifikátory GUID můžete vytvořit několika různými způsoby. Patří mezi ně náhodné, časové, hardwarové a obsahové (tj. Založené na hašované hodnotě MD5 nebo SHA-1 hodnoty dat). Všechny tyto způsoby a další pokročilé funkce identifikátorů GUID vás provedu v budoucím článku zde.

Jak dělat více v C #

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