Programmēšana

Kā lietot const, tikai lasāmu un statisku C #

Programmējot C #, bieži tiek izmantoti atslēgvārdi const, readonly un static. Lai gan šiem atslēgvārdiem ir būtiskas atšķirības, tiem ir arī līdzības, kuru dēļ dažreiz ir grūti zināt, kad kuru lietot. Šajā rakstā ir aplūkoti C, kon, statiskie un tikai lasāmie atslēgvārdi, kā tie tiek salīdzināti un kā mums tie jāizmanto mūsu C # lietojumprogrammās.

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.

Izveidojiet konsoles lietojumprogrammas projektu Visual Studio 2019

Vispirms izveidosim .NET Core konsoles 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 Visual Studio izveidotu jaunu .NET Core konsoles lietojumprogrammas projektu.

  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, lai ilustrētu C, raksta const, readonly un static atslēgvārdu izmantošanu šī raksta nākamajās sadaļās.

Izmantojiet const atslēgvārdu C #

C # atslēgvārds const (lasīt: nemainīgs) tiek izmantots, lai definētu nemainīgu mainīgo, t.i., mainīgo, kura vērtība nemainīsies programmas darbības laikā. Tāpēc obligāti jāpiešķir vērtība nemainīgam mainīgajam tā deklarēšanas brīdī.

Šī konstanta mainīgā vērtība ir pazīstama arī kā “sastādīšanas laika” vērtība. Mainītāji, kas deklarēti, izmantojot atslēgvārdu const, ir pazīstami arī kā kompilēšanas laika konstantes. Jāatzīmē, ka nemainīgs mainīgais ir nemainīgs, t.i., nemainīgajam mainīgajam piešķirto vērtību vēlāk nevar mainīt.

Šis koda fragments ilustrē, kā jūs varat definēt sastādīšanas laika konstanti, izmantojot C # atslēgvārdu.

const string connectionString = "Šeit norādiet datu bāzes savienojuma virkni.";

Ņemiet vērā, ka konstanta mainīgajam jums jāpiešķir vērtība brīdī, kad to definējat. Ņemiet vērā arī to, ka konstanta objekta izveidošanai nevar izmantot atslēgvārdu const. Atslēgvārdu konst var lietot tikai primitīviem datu tipiem (piemēram, ints, pludiņi, rakstzīmes un būla) un virknēm. Ļaujiet saprast piemēru const ar piemēru.

Apsveriet šādu klasi ar nosaukumu Autors. Autora klasei mēs piešķirsim tikai dažas īpašības, lai to padarītu vienkāršu.

sabiedrības klase Autors

    {

public int Id {get; komplekts; }

publiskā virkne FirstName {get; komplekts; }

publiskā virkne Uzvārds {get; komplekts; }

publiska virkne Adrese {get; komplekts; }

    }

Tagad, mēģinot izveidot nemainīgu klases Autors objektu, izmantojot atslēgas vārdu const, tiks novērota apkopošanas kļūda, kas parādīta 1. attēlā.

Šī kļūda norāda, ka piešķiršanas operatora labajā pusē jābūt nemainīgai vērtībai, lai apmierinātu izteiksmi. Jo paziņojums jauns autors () nav konstante, piešķiršana nav derīga un līdz ar to arī kļūda.

C # izmantojiet tikai lasāmu atslēgvārdu

Tikai lasāmu atslēgvārdu var izmantot, lai definētu mainīgo vai objektu kā tikai lasāmu. Tas nozīmē, ka mainīgajam vai objektam vērtību var piešķirt tikai klases diapazonā vai konstruktorā. Jūs nevarat mainīt vērtību vai piešķirt vērtību lasāmam mainīgajam vai objektam tikai ar konstruktoru.

Sapratīsim to ar piemēru. Apsveriet šādu klasi ar nosaukumu DbManager.

sabiedrības klase DbManager

    {

public readonly string connectionString =

"Šeit norādiet datu bāzes savienojuma virkni.";

publiskais DbManager ()

        {

connectionString = "Šeit jūs varat atkārtoti piešķirt vērtību.";

        }

public void ReAssign ()

        {

connectionString = "Tas nav atļauts";

        }

    }

Iepriekš minētais kods netiks apkopots, un jums tiks parādīta kļūda, kas parādīta 2. attēlā.

Izmantojiet statisko atslēgvārdu C #

Statisko atslēgvārdu C # var izmantot mainīgajam, metodei vai objektam. Ņemiet vērā, ka statisks klases loceklis pieder objekta tipam, nevis tipa gadījumam. Citiem vārdiem sakot, statiskajiem dalībniekiem tiek piekļūts ar klases nosaukumu, nevis instances nosaukumu.

Apsveriet šādu klasi ar nosaukumu Utility, kas satur statisku metodi.

sabiedrības klases lietderība

    {

public static void SomeMethod ()

        {

// Uzrakstiet savu kodu šeit

        }

    }

Jūs nevarat izsaukt metodi SomeMethod () izmantojot utilītas klases instanci. Drīzāk jums vajadzētu izsaukt šo metodi, izmantojot šādu sintaksi.

Lietderība.SomeMethod ();

Tas pats noteikums attiecas uz statisko mainīgo vai statisko objektu. Uz statisku klases dalībnieku var atsaukties tikai, izmantojot zemāk redzamo sintaksi.

Klases nosaukums.Biedrs;

Or

Klases nosaukums.Biedrs();

Klases konstruktors var būt statisks. Klasisko statisko konstruktoru izmanto, lai inicializētu klases statiskos locekļus. Tomēr statisks klases konstruktors nevar pieņemt parametrus.

Noteikums par konst., Tikai lasāms un statisks

Šis ir īkšķa noteikums, kuru varat ievērot, strādājot ar const, readonly un static atslēgvārdiem. Izmantojiet atslēgvārdu const, kad mainīgā vērtība nekad nemainīsies lietojumprogrammas darbības laikā. Izmantojiet tikai lasāmu atslēgvārdu, ja neesat pārliecināts, vai objekta mainīgā vērtība ir jāmaina, bet vēlaties neļaut citām klasēm mainīt vērtību. Izmantojiet statisko atslēgvārdu, ja vēlaties, lai klases loceklis pieder tipam, nevis tipa gadījumam.

Kā izdarīt vairāk C #:

  • Kā izmantot datu anotācijas C #
  • Kā strādāt ar GUID C # 8
  • 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 #
  • Kā lietot Dapper ORM C #
  • Kā izmantot lidojošā dizaina rakstu C #
$config[zx-auto] not found$config[zx-overlay] not found