Programiranje

Kako delati z GUID-i v C # 8

Pri delu v aplikacijah boste morda pogosto morali uporabiti globalne enolične identifikatorje (GUID). Edinstveni identifikatorji, kot so primarni ključi v zbirki podatkov SQL, zagotavljajo, da se pomembni predmeti, kot so stranke in računi, ne podvajajo ali prepisujejo. Brez edinstvenih identifikatorjev ne bi mogli preprečiti izgube podatkov ali zagotoviti celovitosti podatkov naših aplikacij.

Globalno unikatni identifikator ali GUID predstavlja velikansko identifikacijsko številko - tako veliko, da je matematično zagotovljeno, da je unikatna ne samo v enem sistemu, kot je baza podatkov, temveč v več sistemih ali porazdeljenih aplikacijah. Ta članek govori o tem, zakaj potrebujemo GUID-je in kako lahko delamo z GUID-ji v C # 8.0.

Če želite delati s primeri kod v tem članku, morate imeti v sistemu nameščen Visual Studio 2019. Če kopije še nimate, lahko Visual Studio 2019 prenesete tukaj.

Ustvarite projekt aplikacije za konzolo v Visual Studio

Najprej ustvarimo projekt aplikacije .NET Core Console v Visual Studio. Če predpostavimo, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da v Visual Studio ustvarite nov aplikacijski projekt .NET Core Console.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na seznamu predlog izberite »Console App (.NET Core)«.
  4. Kliknite Naprej.
  5. V naslednjem oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Kliknite Ustvari.

Tako boste ustvarili nov aplikacijski projekt konzole .NET Core v Visual Studio 2019. Ta projekt bomo uporabili za delo z GUID-ji v naslednjih odsekih tega članka. Upoštevajte, da bomo tukaj uporabljali C # 8, zato boste morda želeli posodobiti jezikovno različico v svojem projektu.

Zakaj potrebujemo GUID-je?

Predstavljajte si, da imate na svoji mobilni aplikaciji na voljo prodajno mesto, ki je na voljo v spletnem in brez povezave. Predpostavimo, da vaša aplikacija vsebuje ID-številke, ki se samodejno generirajo od 1. Kako lahko združite podatke brez povezave, ko se poveže povezava? Kaj pa, če sta bili vaši identifikacijski številki ustvarjeni v obeh načinih? Lahko pride do trkov, kajne? Kako bi ravnali s podvojenimi ID številkami? To bi zagotovo lahko rešili, vendar bi morali napisati veliko kode - kar pa ne želite storiti.

Tukaj na pomoč prihajajo GUID-ji. GUID je velikanska številka - dolga 128 bitov - in je skoraj edinstvena. Zakaj skoraj edinstven? Zakaj ne moremo reči, da je edinstven? V bistvu je število možnih GUID-jev tako veliko, da je možnost trčenja izjemno majhna. Kljub temu možnosti trka niso enake.

GUID-ove lahko izkoristite tako, da jih naredite za primarne ključe za tabele zbirke podatkov. Uporaba GUID-ov vam bo celo pomagala, da se izognete konfliktom med spajanjem, če združujete dve ali več baz podatkov. Druga prednost GUID-jev je ta, da jih lahko generirate brez povezave - ni vam treba biti povezani v omrežje ali internet.

Kako so predstavljeni GUID-ji?

Sledi primer GUID. Upoštevajte, da je GUID običajno 128 bitov in je predstavljen v šestnajstiški obliki.

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

GUID je organiziran kot natančno določeno zaporedje 32 šestnajstiških številk, razvrščenih v koščke 8-4-4-4-12. Tako lahko imate največ 2 ^ 128 GUID-ov.

Ustvarite GUID v C # 8

V tem razdelku bomo izvedeli, kako lahko delamo z GUID-ji v C #. GUID-je lahko ustvarite v .NET-u z uporabo strukture Guid, ki je na voljo kot del imenskega prostora sistema. Tukaj je najlažji način ustvariti GUID v C #. Zapišite naslednjo kodo v metodo Main () datoteke Program.cs v projektu, ki ste ga prej ustvarili.

Vodnik obj = Guid.NewGuid ();

Console.WriteLine ("Novo ustvarjeni vodič je:" + obj.ToString ());

Console.ReadKey ();

Ustvarite prazen GUID v C # 8

Ker je Guid struktura, je vrsta vrednosti, zato je ne morete nastaviti na nič. Če želite ustvariti prazne smernice, lahko napišete naslednjo kodo.

Guid id = new Guid ();

če (id == Guid.Empty)

Console.WriteLine ("Vodnik je prazen");

Guid.Empty ima vrednost 00000000-0000-0000-0000-000000000000. Izkoristite lahko prazen GUID, da ga primerjate z drugim objektom GUID, da ugotovite, ali ni nič. Naslednji delček kode to ponazarja.

if (guid! = Guid.Empty) {

// Objekt GUID vsebuje ničelne vrednosti

}

drugače

{

// Objekt GUID je prazen

Tu je preprosta metoda razširitve, ki določa, ali je GUID Guid.Empty.

javni statični bool IsNullOrEmpty (ta vodnik)

{

vrnitev (guide == Guid.Empty);

Z naslednjo metodo razširitve lahko celo preverite, ali je vaš ničelni GUID ničen.

javni statični bool IsNullOrEmpty (ta priročnik? vodič)

{

če (vodi.HasValue)

če (guide == privzeto (Guid))

vrni res;

vrni false;

}

Upoštevajte, da je privzeto (Guid) enako kot Guid.Empty.

Pretvorite GUID v niz v C # 8

GUID lahko celo pretvorite v niz. Naslednji delček kode prikazuje, kako lahko prazen GUID pretvorite v niz.

niz str = Guid.Empty.ToString ();

Console.WriteLine (str);

Upoštevajte, da obstaja eno glavno opozorilo pri uporabi GUID-ov: morda pride do trkov. Upoštevajte tudi, da GUID zavzamejo nekaj prostora in niso ustvarjeni v zaporednem vrstnem redu. Vendar lahko svoje GUID-je programsko naredite edinstvene z uporabo 128-bitnega celega števila, ki ga lahko predstavite z dvema vrednostma ULong in ga zaporedno povečate.

Morda boste želeli pretvoriti GUID v niz, ki je pogosto v vaših aplikacijah. To boste morda morali storiti, če želite podatke GUID povezati s svojimi kontrolniki podatkov ali posredovati GUID uporabniškemu vmesniku. Morda boste celo želeli objekt GUID pretvoriti v niz za oblikovanje podatkov GUID po vaših zahtevah.

GUID-je lahko ustvarite na več različnih načinov. Sem spadajo naključne, časovne, strojne in vsebinske (tj. Na podlagi zgoščene vrednosti podatkov MD5 ali SHA-1). V naslednjem članku vas bom popeljal skozi vse te načine in druge napredne funkcije GUID-jev.

Kako narediti več v jeziku C #

  • Kdaj uporabiti abstraktni razred v primerjavi z vmesnikom v jeziku C #
  • Kako delati z AutoMapper v C #
  • Kako uporabljati lambda izraze v jeziku C #
  • Kako delati z delegati Action, Func in Predicate v C #
  • Kako delati z delegati v C #
  • Kako implementirati preprost zapisovalnik v jeziku C #
  • Kako delati z atributi v jeziku C #
  • Kako delati z log4net v C #
  • Kako implementirati vzorec oblikovanja repozitorija v C #
  • Kako delati z refleksijo v jeziku C #
  • Kako delati z nadzornikom datotek v C #
  • Kako izvesti leno inicializacijo v C #
  • Kako delati z MSMQ v C #
  • Kako delati z razširitvenimi metodami v jeziku C #
  • Kako do lambda izrazov v jeziku C #
  • Kdaj uporabiti hlapljivo ključno besedo v jeziku C #
  • Kako uporabiti ključno besedo yield v jeziku C #
  • Kako uporabiti polimorfizem v jeziku C #
  • Kako zgraditi lasten načrtovalnik opravil v C #
  • Kako delati z RabbitMQ v C #
  • Kako delati s korpico v jeziku C #
  • Raziskovanje virtualnih in abstraktnih metod v jeziku C #
$config[zx-auto] not found$config[zx-overlay] not found