Programavimas

Kaip naudoti const, readonly ir static C #

Raktiniai žodžiai „const“, „readonly“ ir „static“ dažnai naudojami programuojant C #. Tačiau nors šie raktiniai žodžiai turi svarbių skirtumų, jie taip pat turi panašumų, dėl kurių kartais sunku žinoti, kada kuriuos naudoti. Šiame straipsnyje aptariami „C #“ raktiniai žodžiai „const“, „static“ ir „readonly“, kaip jie lyginami ir kaip turėtume juos naudoti savo C # programose.

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 2019“ sukurkite konsolės programos projektą

Pirmiausia sukurkime .NET Core konsolės programos projektą „Visual Studio“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują .NET Core konsolės 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“. Mes naudosime šį projektą, kad iliustruotume „const“, tik skaitomų ir statinių raktinių žodžių naudojimą C # tolesniuose šio straipsnio skyriuose.

Naudokite const raktinį žodį C #

C # raktinis žodis const (skaityti: pastovus) naudojamas apibrėžti pastovų kintamąjį, t. Y. Kintamąjį, kurio vertė nepakis per visą programos veikimo laiką. Todėl būtina deklaruoti pastovaus kintamojo vertę jo deklaravimo metu.

Ši pastovaus kintamojo reikšmė taip pat žinoma kaip „kompiliavimo laiko“ vertė. Kintamieji, deklaruoti naudojant raktinį žodį „const“, taip pat žinomi kaip kompiliavimo laiko konstantos. Reikėtų pažymėti, kad pastovus kintamasis yra nekintamas, t.y., pastoviam kintamajam paskirtos vertės vėliau pakeisti negalima.

Šis kodo fragmentas iliustruoja, kaip galite apibrėžti kompiliavimo laiko konstantą naudodami „const“ raktinį žodį C #.

const string connectionString = "Čia nurodykite savo duomenų bazės ryšio eilutę.";

Atminkite, kad nustatydami pastovų kintamąjį turite priskirti vertę. Taip pat atkreipkite dėmesį, kad negalite naudoti raktinio žodžio konstatuojančiam objektui sukurti. Raktinis žodis „const“ gali būti taikomas tik primityviems duomenų tipams (pvz., Intams, plūdėms, simboliams ir loginėms sąlygoms) ir eilutėms. Supraskime const naudojimą su pavyzdžiu.

Apsvarstykite šią klasę, pavadintą Autorius. Autorių klasei suteiksime tik keletą savybių, kad tai būtų paprasta.

visuomenės klasės Autorius

    {

public int Id {get; rinkinys; }

public string FirstName {get; rinkinys; }

vieša eilutė Pavardė {get; rinkinys; }

viešoji eilutė Adresas {get; rinkinys; }

    }

Dabar, jei bandysite sukurti pastovų „Author“ klasės objektą naudodami „const“ raktinį žodį, pastebėsite toliau pateiktoje 1 paveiksle parodytą kompiliavimo klaidą.

Ši klaida rodo, kad dešinioji priskyrimo operatoriaus pusė turėtų turėti pastovią vertę, kad patenkintų išraišką. Nes teiginys naujas autorius () nėra konstanta, priskyrimas negalioja, taigi ir klaida.

Naudokite tik skaitomą raktinį žodį C #

Tik skaitymo raktinis žodis gali būti naudojamas apibrėžti kintamąjį ar objektą kaip tik skaitomą. Tai reiškia, kad kintamajam ar objektui gali būti priskirta tik klasės apimtis arba konstruktorius. Negalite pakeisti vertės ar priskirti reikšmės tik skaitomam kintamajam ar objektu jokiu kitu metodu, išskyrus konstruktorių.

Supraskime tai su pavyzdžiu. Apsvarstykite šią klasę, pavadintą „DbManager“.

viešosios klasės „DbManager“

    {

viešoji tik skaitoma eilutė connectionString =

"Čia nurodykite savo duomenų bazės ryšio eilutę.";

viešasis „DbManager“ ()

        {

connectionString = "Čia galite iš naujo priskirti vertę.";

        }

public void ReAssign ()

        {

connectionString = "Tai neleidžiama";

        }

    }

Aukščiau pateiktas kodas nebus kompiliuojamas ir jums bus pateikta 2 paveiksle pavaizduota klaida.

Naudokite statinį raktinį žodį C #

Statinis raktinis žodis C # gali būti naudojamas kintamajam, metodui ar objektui. Atkreipkite dėmesį, kad statinis klasės narys priklauso objekto tipui, o ne tipo egzemplioriui. Kitaip tariant, prie statiškų narių prieinama nurodant klasės pavadinimą, o ne egzemplioriaus pavadinimą.

Apsvarstykite šią klasę, pavadintą „Utility“, kurioje yra statinis metodas.

visuomenės klasės komunalinės paslaugos

    {

public static void SomeMethod ()

        {

// Čia parašykite savo kodą

        }

    }

Negalite paskambinti metodo „SomeMethod“ () naudojant „Utility“ klasės egzempliorių. Verčiau turėtumėte iškviesti šį metodą naudodami šią sintaksę.

Naudingumas.SomeMethod ();

Ta pati taisyklė taikoma statiniam kintamajam ar statiniam objektui. Statinį klasės narį galite nurodyti tik naudodami toliau pateiktą sintaksę.

„ClassName“.Narys;

Arba

„ClassName“.Narys ();

Klasės konstruktorius gali būti statiškas. Statiniams klasės nariams inicializuoti naudojamas statinis klasės konstruktorius. Tačiau statinis klasės konstruktorius negali priimti parametrų.

Taisyklė, taikoma konst., Tik skaitomam ir statiniam

Štai nykščio taisyklė, kurios galite laikytis dirbdami su „const“, tik skaitymo ir statiniais raktiniais žodžiais. Naudokite raktinį žodį „const“, kai kintamojo vertė niekada nesikeis per visą programos veikimo laiką. Naudokite raktinį žodį tik skaityti, kai nesate tikri, ar objekto kintamojo reikšmė turi keistis, tačiau norite neleisti kitoms klasėms keisti vertės. Jei norite, kad klasės narys priklausytų tipui, o ne tipo egzemplioriui, naudokite statinį raktinį žodį.

Kaip padaryti daugiau C #:

  • Kaip naudoti duomenų komentarus C #
  • Kaip dirbti su GU # C # 8
  • 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 #
  • Kaip naudoti Dapper ORM C #
  • Kaip naudoti „flyweight“ dizaino modelį C #