Programavimas

Kaip dirbti su GU # C # 8

Dirbant programose dažnai gali tekti naudoti visuotinai unikalius identifikatorius (GUID). Unikalūs identifikatoriai, tokie kaip pagrindiniai raktai SQL duomenų bazėje, užtikrina, kad svarbūs objektai, pvz., Klientai ir sąskaitos, nebūtų dubliuojami ar perrašomi. Be unikalių identifikatorių negalėtume išvengti duomenų praradimo ar užtikrinti savo programų duomenų vientisumą.

Visuotinai unikalus identifikatorius arba GUID reiškia milžinišką identifikavimo numerį - tokį skaičių, kad matematiškai garantuojama, kad jis bus unikalus ne tik vienoje sistemoje, pvz., Duomenų bazėje, bet ir keliose sistemose ar paskirstytose programose. Šiame straipsnyje aptariama, kodėl mums reikia GUID ir kaip mes galime dirbti su C # 8.0 GUID.

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

„Visual Studio“ sukurkite konsolės programos projektą

Pirmiausia sukurkime .NET Core Console Application projektą „Visual Studio“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują „.NET Core Console“ programos projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „Console App (.NET Core)“.
  4. Spustelėkite Pirmyn.
  5. Tada rodomame lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Spustelėkite Sukurti.

Tai sukurs naują „.NET Core“ konsolės programos projektą „Visual Studio 2019“. Šį projektą naudosime dirbdami su GUID tolesniuose šio straipsnio skyriuose. Atminkite, kad čia naudosime C # 8, todėl galbūt norėsite atnaujinti kalbos versiją savo projekte.

Kodėl mums reikalingi GUID?

Įsivaizduokite, kad turite prekybos taško programą, kuri yra prieinama ir internetiniu, ir neprisijungus režimu jūsų mobiliojoje programoje. Tarkime, kad jūsų programa pateikia ID numerius, kurie automatiškai sugeneruojami pradedant nuo 1. Kaip galite sujungti duomenis neprisijungus, kai ryšys bus atkurtas? Ką daryti, jei jūsų ID numeriai buvo sugeneruoti abiem režimais? Gali būti susidūrimų, tiesa? Kaip elgtumėtės pasikartojančiais ID numeriais? Jūs tikrai galėtumėte tai išspręsti, bet turėtumėte parašyti daug kodo, o ne tai, ko norite padaryti.

Čia gelbsti GUID. GUID yra milžiniškas skaičius - 128 bitų ilgio - ir yra beveik unikalus. Kodėl beveik nepakartojama? Kodėl negalime sakyti, kad jis yra unikalus? Iš esmės galimų GUID skaičius yra toks didelis, kad susidūrimo tikimybė yra labai minimali. Nepaisant to, susidūrimo tikimybė nėra lygi nuliui.

Galite pasinaudoti GUID pranašumais, paversdami juos pagrindiniais savo duomenų bazės lentelių raktais. Naudodami GUID netgi galėsite išvengti konfliktų sujungimo, kai sujungiate dvi ar daugiau duomenų bazių. Kitas GUID pranašumas yra tas, kad galite juos generuoti neprisijungę - nereikia prisijungti prie tinklo ar interneto.

Kaip pateikiami GUID?

Toliau pateikiamas GUID pavyzdys. Atminkite, kad GUID paprastai yra 128 bitų ilgio ir pateikiamas šešioliktainiais skaičiais.

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

GUID yra suskirstytas kaip tiksliai apibrėžta 32 šešioliktainių skaitmenų seka, sugrupuota į 8-4-4-4-12 dalis. Taigi galite turėti ne daugiau kaip 2 ^ 128 GUID.

Sukurkite GUID C # 8

Šiame skyriuje sužinosime, kaip galime dirbti su GU # C #. Galite sukurti GUID .NET naudodami „Guid“ struktūrą, esančią kaip sistemos vardų srities dalį. Čia yra paprasčiausias būdas generuoti GUID C # formatu. Įrašykite šį kodą anksčiau sukurto projekto „Program.cs“ failo „Main“ () metode.

Guid obj = Guid.NewGuid ();

Console.WriteLine ("Naujai sukurta vadovė yra:" + obj.ToString ());

Pultas.ReadKey ();

Sukurkite tuščią GUID C # 8

Kadangi „Guid“ yra struktūra, tai yra vertės tipas, todėl jūs negalite jo nustatyti į nulį. Norėdami sukurti tuščius vadovus, galite parašyti šį kodą.

„Guid id“ = nauja „Guid“ ();

jei (id == Vadovas. Tuščias)

Console.WriteLine („Vadovas tuščias“);

„Guid.Empty“ vertė yra 00000000-0000-0000-0000-00000000000000. Galite pasinaudoti tuščiu GUID, kad palygintumėte jį su kitu GUID objektu, kad nustatytumėte, ar jis nėra nulis. Tai iliustruoja šis kodo fragmentas.

jei (gidas! = gidas. tuščias) {

// GUID objekte yra ne nulinės vertės

}

Kitas

{

// GUID objektas tuščias

Čia yra paprastas išplėtimo metodas, kuris nustato, ar GUID yra „Guid“. Tuščias.

viešoji statinė talpa „IsNullOrEmpty“ (ši gido instrukcija)

{

grįžti (guid == Guid.Tuščias);

Galite net patikrinti, ar jūsų negaliojantis GUID yra niekinis, naudodami šį plėtinio metodą.

viešoji statinė talpa „IsNullOrEmpty“ (ši „Guid“ instrukcija)

{

if (guid.HasValue)

jei (gidas == numatytasis (gidas))

grįžti tiesa;

grąžinti klaidingą;

}

Atkreipkite dėmesį, kad numatytasis („Guid“) yra tas pats, kas „Guid“. Tuščias.

Konvertuokite GUID į eilutę C # 8

Jūs netgi galite konvertuoti GUID į eilutę. Šis kodo fragmentas parodo, kaip tuščią GUID galite konvertuoti į eilutę.

eilutė str = Guid.Empty.ToString ();

Console.WriteLine (str);

Atminkite, kad yra vienas pagrindinių GUID naudojimo įspėjimų: galite susidurti. Taip pat atkreipkite dėmesį, kad GUID užima šiek tiek vietos ir jie nėra sugeneruoti eilės tvarka. Tačiau galite padaryti savo GUID unikalius programiškai, naudodami 128 bitų sveikąjį skaičių, kurį galima pavaizduoti naudojant dvi ULong reikšmes ir jį nuosekliai didinant.

Galbūt norėsite konvertuoti GUID į eilutę dažnai savo programose. Tai gali reikėti padaryti norint susieti GUID duomenis su duomenų valdikliais arba perduoti GUID vartotojo sąsajai. Jūs netgi galite konvertuoti GUID objektą į eilutę, kad suformatuotumėte GUID duomenis pagal jūsų reikalavimus.

Galite sukurti GUID keliais skirtingais būdais. Tai apima atsitiktinius, laiko, aparatūros ir turinio pagrindus (t. Y. Remiantis MD5 arba SHA-1 duomenų maišos verte). Apžvelgsiu visus šiuos būdus ir kitas pažangias GUID funkcijas būsimame straipsnyje.

Kaip padaryti daugiau C #

  • Kada naudoti abstrakčią klasę ir sąsają C #
  • Kaip dirbti su „AutoMapper“ C #
  • Kaip naudoti lambda išraiškas C #
  • Kaip dirbti su „Action“, „Func“ ir „Predicate“ delegatais C #
  • Kaip dirbti su delegatais C #
  • Kaip įdiegti paprastą kaupiklį C #
  • Kaip dirbti su atributais C #
  • Kaip dirbti su „Log4net“ C #
  • Kaip įgyvendinti saugyklos dizaino modelį C #
  • Kaip dirbti su atspindžiu C #
  • Kaip dirbti su failų stebėjimo programa C #
  • Kaip atlikti tingų inicializavimą C #
  • Kaip dirbti su MSMQ C #
  • Kaip dirbti su plėtinių metodais C #
  • Kaip mums lambda išraiškos C #
  • Kada naudoti nepastovų raktinį žodį C #
  • Kaip naudoti pajamingumo raktinį žodį C #
  • Kaip įgyvendinti polimorfizmą C #
  • Kaip sukurti savo užduočių planavimo priemonę C #
  • Kaip dirbti su „RabbitMQ“ C #
  • Kaip dirbti su dvigubu C #
  • Naršyti virtualius ir abstrakčius metodus C #