Ohjelmointi

Kuinka käyttää GUID-tunnuksia C # 8: ssa

Kun työskentelet sovelluksissa, sinun on ehkä käytettävä yleisesti yksilöllisiä tunnisteita (GUID). Ainutlaatuiset tunnisteet, kuten SQL-tietokannan ensisijaiset avaimet, varmistavat, että tärkeitä objekteja, kuten asiakkaita ja laskuja, ei kopioida tai korvata. Ilman yksilöllisiä tunnisteita emme voineet estää tietojen menetystä tai varmistaa sovelluksemme tietojen eheyttä.

Maailmanlaajuisesti yksilöllinen tunniste tai GUID edustaa jättimäistä tunnistenumeroa - niin suuren numeron, että matemaattisesti taataan olevan ainutlaatuinen paitsi yhdessä järjestelmässä, kuten tietokannassa, myös useissa järjestelmissä tai hajautetuissa sovelluksissa. Tässä artikkelissa käsitellään sitä, miksi tarvitsemme GUID-tunnuksia ja kuinka voimme työskennellä GUID-tunnusten kanssa C # 8.0: ssa.

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

Luo konsolisovellusprojekti Visual Studiossa

Luo ensin .NET Core Console -sovellusprojekti Visual Studiossa. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi .NET Core Console -sovellusprojekti Visual Studiossa noudattamalla alla olevia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”Console App (.NET Core)” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä seuraavan projektin nimi ja sijainti uuden Konfiguroi uusi projekti -ikkunassa.
  6. Napsauta Luo.

Tämä luo uuden .NET Core -konsolisovellusprojektin Visual Studio 2019: ssä. Tätä projektia käytetään GUID-tunnusten kanssa tämän artikkelin seuraavissa osissa. Huomaa, että käytämme täällä C # 8: ta, joten kannattaa ehkä päivittää projektisi kieliversio.

Miksi tarvitsemme GUID-tunnuksia?

Kuvittele, että sinulla on myyntipistesovellus, joka on saatavana sekä online- että offline-tilassa mobiilisovelluksessasi. Oletetaan, että sovelluksesi tarjoaa tunnistenumerot, jotka luodaan automaattisesti vuodesta 1. Kuinka offline-tiedot voidaan yhdistää, kun yhteys on palautettu? Entä jos henkilötunnuksesi on luotu molemmissa tiloissa? Törmäyksiä voi olla, eikö? Kuinka käsittelet päällekkäisiä henkilötunnuksia? Voit varmasti hoitaa tämän, mutta sinun on kirjoitettava paljon koodia - mitä et halua tehdä.

Tässä GUID-tunnukset tulevat apuun. GUID on jättimäinen luku - 128 bittiä pitkä - ja melkein ainutlaatuinen. Miksi melkein ainutlaatuinen? Miksi emme voi sanoa, että se on ainutlaatuinen? Pohjimmiltaan mahdollisten GUID-tunnusten määrä on niin suuri, että törmäysmahdollisuudet ovat erittäin pienet. Törmäysmahdollisuudet eivät kuitenkaan ole nollat.

Voit hyödyntää GUID-tunnuksia tekemällä niistä ensisijaiset avaimet tietokantataulukoihisi. GUID-tunnusten käyttö auttaa jopa välttämään ristiriitoja, kun yhdistät kahta tai useampaa tietokantaa. Toinen GUID-tunnusten etu on, että voit luoda ne offline-tilassa - sinun ei tarvitse olla yhteydessä verkkoon tai Internetiin.

Kuinka GUID-tunnukset esitetään?

Seuraava on esimerkki GUID: stä. Huomaa, että GUID on yleensä 128 bittiä pitkä ja se on esitetty heksadesimaalin tarkkuudella.

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

GUID on järjestetty tarkasti määritellyksi 32 heksadesimaaliluvun sekvenssiksi, jotka on ryhmitelty paloiksi 8-4-4-4-12. Siksi sinulla voi olla enintään 2 ^ 128 GUID-tunnusta.

Luo GUID tunnukselle C # 8

Tässä osassa opitaan, miten voimme työskennellä GU #: iden kanssa C #: ssä. Voit luoda GUID-tiedostoja .NET-järjestelmässä käyttämällä järjestelmän nimiavaruuden osana käytettävissä olevaa Guid-rakennetta. Tässä on helpoin tapa luoda GUID-tunnus C #: ssä. Kirjoita seuraava koodi aiemmin luomasi projektin Program.cs-tiedoston Main () -menetelmään.

Guid obj = Guid.NewGuid ();

Console.WriteLine ("Äskettäin luotu opas on:" + obj.ToString ());

Console.ReadKey ();

Luo tyhjä GUID tunnisteeseen C # 8

Koska Guid on rakenne, se on arvotyyppi, joten et voi asettaa sitä nollaksi. Voit luoda tyhjät ohjeet kirjoittamalla seuraavan koodin.

Guid id = uusi opas ();

if (id == Guid.Empty)

Console.WriteLine ("Opas on tyhjä");

Guid.Empty-arvon arvo on 00000000-0000-0000-0000-00000000000000. Voit hyödyntää tyhjää GUID: tä verrataksesi sitä toiseen GUID-objektiin ja selvittääksesi, onko se nolla. Seuraava koodinpätkä kuvaa tätä.

jos (guid! = Guid.tyhjä) {

// GUID-objekti sisältää nollasta poikkeavia arvoja

}

muu

{

// GUID-objekti on tyhjä

Tässä on yksinkertainen laajennusmenetelmä, joka määrittää, onko GUID Guid.Empty.

julkinen staattinen bool IsNullOrEmpty (tämä opasopas)

{

paluu (guid == Guid.Empty);

Voit jopa tarkistaa, onko mitätöitävä GUID-tunnuksesi tyhjä, seuraavalla laajennusmenetelmällä.

julkinen staattinen bool IsNullOrEmpty (tämä opas? opas)

{

if (guid.HasValue)

if (guid == oletus (Guid))

palaa tosi;

return false;

}

Huomaa, että oletus (Guid) on sama kuin Guid.Empty.

Muunna GUID merkkijonoksi C # 8: ssa

Voit jopa muuntaa GUID: n merkkijonoksi. Seuraava koodinpätkä näyttää, kuinka voit muuntaa tyhjän GUID-tunnuksen merkkijonoksi.

merkkijono str = Guid.Empty.ToString ();

Console.WriteLine (str);

Huomaa, että GUID-tunnusten käytössä on yksi merkittävä huomautus: Sinulla voi olla törmäyksiä. Huomaa myös, että GUID: t vievät jonkin verran tilaa, eikä niitä luoda peräkkäisessä järjestyksessä. Voit kuitenkin tehdä GUID-tunnuksistasi ainutlaatuiset ohjelmallisesti käyttämällä 128-bittistä kokonaislukua, joka voidaan esittää kahdella ULong-arvolla ja kasvattamalla sitä peräkkäin.

Haluat ehkä muuntaa GUID: n merkkijonoksi usein sovelluksissasi. Saatat joutua tekemään tämän sitomaan GUID-tiedot datan ohjaimiin tai siirtämään GUID käyttäjän käyttöliittymään. Saatat jopa haluta muuntaa GUID-objektin merkkijonoksi muotoilemaan GUID-tiedot tarpeidesi mukaan.

Voit luoda GUID-tunnuksia useilla eri tavoilla. Näitä ovat satunnainen, aikaperusteinen, laitteistopohjainen ja sisältöpohjainen (ts. Perustuu datan MD5- tai SHA-1-hajautusarvoon). Opastan sinut läpi kaikki nämä tavat ja muut GUID-tunnusten lisäominaisuudet tulevassa artikkelissa täällä.

Kuinka tehdä enemmän C #: ssä

  • Milloin abstraktia luokkaa vs. käyttöliittymää käytetään C #: ssä
  • Kuinka työskennellä AutoMapperin kanssa C #: ssä
  • Kuinka käyttää lambda-lausekkeita C #: ssä
  • Kuinka toimia Action-, Func- ja Predicate-edustajien kanssa C #: ssä
  • Kuinka työskennellä C #: n edustajien kanssa
  • Kuinka toteuttaa yksinkertainen kirjaaja C #: ssä
  • Kuinka työskennellä attribuuttien kanssa C #: ssä
  • Kuinka työskennellä log4netin kanssa C #: ssä
  • Kuinka toteuttaa arkiston suunnittelumalli C #: ssä
  • Kuinka työskennellä heijastuksen kanssa C #: ssä
  • Kuinka työskennellä tiedostojärjestelmän katselijan kanssa C #: ssä
  • Kuinka tehdä laiska alustus C #: ssä
  • Kuinka työskennellä MSMQ: n kanssa C #: ssä
  • Kuinka työskennellä laajennusmenetelmien kanssa C #: ssä
  • Kuinka meille lambda-lausekkeet C #: ssä
  • Milloin haihtuvaa avainsanaa käytetään C #: ssä
  • Tuottoavainsanan käyttäminen C #: ssä
  • Kuinka toteuttaa polymorfismi C #: ssa
  • Kuinka rakentaa oma tehtävän ajastin C #
  • Kuinka työskennellä RabbitMQ: n kanssa C #: ssä
  • Kuinka työskennellä C #: n kanssa
  • Virtuaalisten ja abstraktien menetelmien tutkiminen C #: ssä