Programmēšana

Kā strādāt ar GUID C # 8

Strādājot lietojumprogrammās, jums, iespējams, būs jāizmanto globāli unikālie identifikatori (GUID). Unikālie identifikatori, piemēram, primārās atslēgas SQL datu bāzē, nodrošina, ka svarīgi objekti, piemēram, klienti un rēķini, netiek dublēti vai pārrakstīti. Bez unikāliem identifikatoriem mēs nevarētu novērst datu zudumu vai nodrošināt mūsu lietojumprogrammu datu integritāti.

Globāli unikāls identifikators jeb GUID apzīmē gigantisku identifikācijas numuru - tik lielu numuru, ka matemātiski tiek garantēts, ka tas būs unikāls ne tikai vienā sistēmā, piemēram, datu bāzē, bet arī vairākās sistēmās vai sadalītās lietojumprogrammās. Šajā rakstā ir apspriests, kāpēc mums ir nepieciešami GUID un kā mēs varam strādāt ar GU # 8.0.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

Visual Studio izveidojiet konsoles lietojumprogrammas projektu

Vispirms izveidosim .NET Core Console lietojumprogrammas projektu Visual Studio. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu .NET Core Console lietojumprogrammas projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “Console App (.NET Core)”.
  4. Noklikšķiniet uz Tālāk.
  5. Nākamajā logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Noklikšķiniet uz Izveidot.

Tādējādi Visual Studio 2019 tiks izveidots jauns .NET Core konsoles lietojumprogrammas projekts. Mēs izmantosim šo projektu darbam ar GUID šī raksta nākamajās sadaļās. Ņemiet vērā, ka mēs šeit izmantosim C # 8, tāpēc, iespējams, vēlēsities atjaunināt projekta valodas versiju.

Kāpēc mums ir nepieciešami GUID?

Iedomājieties, ka jums ir tirdzniecības vietas lietojumprogramma, kas jūsu mobilajā lietojumprogrammā ir pieejama gan tiešsaistes, gan bezsaistes režīmos. Pieņemsim, ka jūsu lietojumprogramma nodrošina ID numurus, kas tiek automātiski ģenerēti, sākot no 1. Kā jūs varat apvienot bezsaistes datus, kad savienojums ir atjaunots? Ko darīt, ja jūsu ID numuri ir ģenerēti abos režīmos? Var būt sadursmes, vai ne? Kā jūs rīkotos ar ID numuru dublikātiem? Jūs noteikti varētu ar to rīkoties, taču jums būs jāraksta daudz koda - ko jūs nevēlaties darīt.

Šeit palīdz GUID. GUID ir gigantisks skaitlis - 128 bitu garš - un ir gandrīz unikāls. Kāpēc gandrīz unikāls? Kāpēc mēs nevaram teikt, ka tas ir unikāls? Būtībā iespējamo GUID skaits ir tik liels, ka sadursmes iespējas ir ārkārtīgi minimālas. Neskatoties uz to, sadursmes iespēja nav nulle.

Varat izmantot GUID priekšrocības, padarot tās par galvenajām datu bāzes tabulu atslēgām. GUID izmantošana pat palīdzēs jums izvairīties no konfliktu apvienošanas, apvienojot divas vai vairākas datu bāzes. Vēl viena GUID priekšrocība ir tā, ka jūs varat tos ģenerēt bezsaistē - jums nav jābūt savienotam ar tīklu vai internetu.

Kā tiek attēloti GUID?

Šis ir GUID piemērs. Ņemiet vērā, ka GUID parasti ir 128 biti garš un tiek attēlots heksadecimālā.

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

GUID ir sakārtots kā precīzi definēta 32 heksadecimālo ciparu secība, kas sagrupēta pa daļām pa 8-4-4-4-12. Tādējādi jums var būt ne vairāk kā 2 ^ 128 GUID.

Izveidojiet GUID C # 8

Šajā sadaļā mēs uzzināsim, kā mēs varam strādāt ar GU # C #. GUID var izveidot .NET, izmantojot Guid struktūru, kas pieejama kā daļa no sistēmas nosaukumvietas. Šeit ir vienkāršākais veids, kā ģenerēt GUID C #. Ierakstiet šo kodu iepriekš izveidotā projekta failā Program.cs Main ().

Guid obj = Guid.NewGuid ();

Console.WriteLine ("Jaunizveidotais ceļvedis ir:" + obj.ToString ());

Console.ReadKey ();

Izveidojiet tukšu GUID C # 8

Tā kā Guid ir struktūra, tas ir vērtības tips, un tāpēc to nevar iestatīt uz nulli. Lai izveidotu tukšus norādījumus, varat ierakstīt šādu kodu.

Vadlīnijas id = jauna vadlīnija ();

ja (id == Guid. Tukšs)

Console.WriteLine ("Vadlīnijas ir tukšas");

Guid.Empty vērtība ir 00000000-0000-0000-0000-00000000000000. Varat izmantot tukša GUID priekšrocības, lai salīdzinātu to ar citu GUID objektu, lai noteiktu, vai tas nav nulle. Tālāk parādītais koda fragments to ilustrē.

ja (guid! = Guid. Tukšs) {

// GUID objektā ir vērtības, kas nav nulles vērtības

}

cits

{

// GUID objekts ir tukšs

Šeit ir vienkārša paplašināšanas metode, kas nosaka, vai GUID ir Guid. Tukšs.

public static bool IsNullOrEmpty (šī rokasgrāmata)

{

atgriezties (guid == Guid.Tukšs);

Jūs pat varat pārbaudīt, vai jūsu nederīgais GUID nav derīgs, izmantojot šo paplašinājuma metodi.

public static bool IsNullOrEmpty (šī vadlīniju vadlīnija)

{

ja (guid.HasValue)

ja (guid == noklusējums (Guid))

atgriezties taisnība;

atgriezties nepatiesa;

}

Ņemiet vērā, ka noklusējums (Guid) ir tāds pats kā Guid.Empty.

Konvertējiet GUID par virkni C # 8

Jūs pat varat pārveidot GUID par virkni. Šis koda fragments parāda, kā tukšu GUID var pārveidot par virkni.

virkne str = Guid.Empty.ToString ();

Console.WriteLine (str);

Ņemiet vērā, ka GUID izmantošanai ir viens būtisks brīdinājums: iespējams, jums ir sadursmes. Ņemiet vērā arī to, ka GUID aizņem vietu un tie netiek ģenerēti secīgā secībā. Tomēr GUID var padarīt programmatiski unikālu, izmantojot 128 bitu veselu skaitli, kuru var attēlot, izmantojot divas ULong vērtības un secīgi palielinot to.

Iespējams, vēlēsities pārveidot GUID par virkni bieži savās lietojumprogrammās. Jums, iespējams, tas būs jādara, lai piesaistītu GUID datus datu vadīklām vai nodotu GUID lietotāja interfeisam. Jūs pat vēlaties pārveidot GUID objektu par virkni, lai formatētu GUID datus atbilstoši jūsu prasībām.

GUID var izveidot dažādos veidos. Tie ietver izlases, laika, aparatūras un satura (t.i., pamatojoties uz datu gabala jauktu vērtību MD5 vai SHA-1). Turpmākajā rakstā es iepazīstināšu jūs ar visiem šiem veidiem un citām GUID papildu funkcijām.

Kā izdarīt vairāk C #

  • Kad izmantot abstraktu klasi un saskarni C #
  • Kā strādāt ar AutoMapper C #
  • Kā lietot lambda izteicienus C #
  • Kā strādāt ar Action, Func un Predicate delegātiem C #
  • Kā strādāt ar delegātiem C #
  • Kā ieviest vienkāršu reģistrētāju C #
  • Kā strādāt ar atribūtiem C #
  • Kā strādāt ar log4net C #
  • Kā ieviest krātuves dizaina modeli C #
  • Kā strādāt ar refleksiju C #
  • Kā strādāt ar filesystemwatcher C #
  • Kā veikt slinku inicializāciju C #
  • Kā strādāt ar MSMQ C #
  • Kā strādāt ar paplašināšanas metodēm C #
  • Kā mums izteikt lambda izteicienus C #
  • Kad lietot svārstīgo atslēgvārdu C #
  • Kā izmantot ienesīguma atslēgvārdu C #
  • Kā ieviest polimorfismu C #
  • Kā izveidot savu uzdevumu plānotāju C #
  • Kā strādāt ar RabbitMQ C #
  • Kā strādāt ar dubultošanos C #
  • Virtuālu un abstraktu metožu izpēte C #
$config[zx-auto] not found$config[zx-overlay] not found