Programiranje

Kako uporabljati const, readonly in static v C #

Ključne besede const, readonly in static se pogosto uporabljajo pri programiranju v jeziku C #. Čeprav imajo te ključne besede pomembne razlike, imajo tudi podobnosti, zaradi katerih je včasih težko vedeti, kdaj uporabiti katero. Ta članek obravnava ključne besede const, statične in samo za branje v C #, kako jih primerjajo in kako bi jih morali uporabljati v naših aplikacijah C #.

Č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 2019

Najprej ustvarimo aplikacijski projekt konzole .NET Core v Visual Studio. Ob predpostavki, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da ustvarite nov aplikacijski projekt konzole .NET Core v Visual Studio.

  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 ponazoritev uporabe ključnih besed const, readonly in static v C # v naslednjih odsekih tega članka.

Uporabite ključno besedo const v jeziku C #

Ključna beseda const (beri: konstanta) v C # se uporablja za definiranje spremenljivke konstante, tj. Spremenljivke, katere vrednost se v življenjski dobi programa ne bo spremenila. Zato je nujno, da konstantni spremenljivki dodelite vrednost v času njene deklaracije.

Ta vrednost konstantne spremenljivke je znana tudi kot vrednost "časa prevajanja". Spremenljivke, deklarirane s ključno besedo const, so znane tudi kot konstante časa prevajanja. Upoštevati je treba, da je konstanta spremenljivke nespremenljiva, tj.

Naslednji delček kode ponazarja, kako lahko s pomočjo ključne besede const v C # definirate konstanto časa prevajanja.

const string connectionString = "Tu določite niz povezave do baze podatkov.";

Upoštevajte, da morate konstantni spremenljivki dodeliti vrednost v času, ko jo definirate. Upoštevajte tudi, da ključne besede const ne morete uporabiti za ustvarjanje stalnega predmeta. Ključno besedo const je mogoče uporabiti samo za primitivne vrste podatkov (kot so ints, floats, chars in booleans) in nize. Razumejmo uporabo const s primerom.

Razmislite o naslednjem razredu z imenom Avtor. Razredu Author bomo dali le nekaj lastnosti, da ga poenostavimo.

javni razred Avtor

    {

public int Id {get; set; }

javni niz FirstName {get; set; }

javni niz LastName {get; set; }

javni niz Naslov {get; set; }

    }

Če poskušate z uporabo ključne besede const ustvariti konstanten objekt razreda Author, boste opazili napako pri prevajanju, prikazano na sliki 1 spodaj.

Ta napaka pomeni, da mora imeti desna stran operaterja dodelitve konstantno vrednost, da izpolnjuje izraz. Ker izjava nov avtor () ni konstanta, dodelitev ni veljavna in s tem napaka.

Uporabite ključno besedo readonly v jeziku C #

Ključno besedo readonly lahko uporabimo za definiranje spremenljivke ali predmeta samo kot berljivega. To pomeni, da je spremenljivki ali predmetu mogoče dodeliti vrednost v obsegu razreda ali samo v konstruktorju. Vrednosti ne morete spremeniti ali dodeliti vrednosti spremenljivki ali objektu samo za branje v nobeni drugi metodi, razen v konstruktorju.

Razumimo to na primeru. Razmislite o naslednjem razredu z imenom DbManager.

javni razred DbManager

    {

javni niz samo za branje connectionString =

"Tu določite niz povezave z bazo podatkov.";

javni DbManager ()

        {

connectionString = "Tukaj lahko dodelite vrednost.";

        }

javna void ReAssign ()

        {

connectionString = "To ni dovoljeno";

        }

    }

Zgornja koda se ne bo prevedla in prikazala se bo napaka, prikazana na sliki 2.

Uporabite statično ključno besedo v jeziku C #

Statično ključno besedo v jeziku C # lahko uporabite za spremenljivko, metodo ali objekt. Upoštevajte, da statični član razreda pripada tipu predmeta in ne primerku tipa. Z drugimi besedami, do statičnih članov se dostopa z imenom razreda, ne imenom primerka.

Razmislite o naslednjem razredu z imenom Utility, ki vsebuje statično metodo.

javni razred Utility

    {

javna statična void SomeMethod ()

        {

// Tukaj napišite kodo

        }

    }

Metode ne morete poklicati SomeMethod () z uporabo primerka razreda Utility. Namesto tega bi morali to metodo poklicati z naslednjo skladnjo.

Utility.SomeMethod ();

Isto pravilo velja za statično spremenljivko ali statični objekt. Na statičnega člana razreda se lahko sklicujete samo s spodnjo sintakso.

ClassName.Član;

Ali

ClassName.Član ();

Konstruktor razreda je lahko statičen. Statični konstruktor razreda se uporablja za inicializacijo statičnih članov razreda. Vendar statični konstruktor razreda ne more sprejeti parametrov.

Pravilo za const, samo za branje in statično

Tu je pravilo palca, ki se ga lahko držite pri delu s ključnimi besedami const, readonly in static. Ključno besedo const uporabite, kadar se vrednost, ki jo vsebuje spremenljivka, v življenjski dobi aplikacije ne bo nikoli spremenila. Ključno besedo readonly uporabite, če niste prepričani, ali se mora spremenljivka predmeta spremeniti, vendar želite drugim razredom preprečiti spreminjanje vrednosti. Ključno besedo static uporabite, če želite, da član razreda pripada tipu in ne primerku tipa.

Kako narediti več v jeziku C #:

  • Kako uporabljati pripise podatkov v jeziku C #
  • Kako delati z GUID-i v C # 8
  • 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 #
  • Kako uporabljati Dapper ORM v C #
  • Kako uporabiti vzorec letenja v C #
$config[zx-auto] not found$config[zx-overlay] not found