Programmering

Slik bruker du const, readonly og static i C #

Nøkkelordene const, readonly og static brukes ofte når du programmerer i C #. Selv om disse søkeordene har viktige forskjeller, har de imidlertid likheter som noen ganger gjør det vanskelig å vite når man skal bruke hvilke. Denne artikkelen diskuterer const, statiske og readonly nøkkelord i C #, hvordan de sammenlignes, og hvordan vi skal bruke dem i C # applikasjoner.

For å jobbe med kodeeksemplene som er gitt i denne artikkelen, bør du ha Visual Studio 2019 installert på systemet ditt. Hvis du ikke allerede har en kopi, kan du laste ned Visual Studio 2019 her.

Opprett et konsollapplikasjonsprosjekt i Visual Studio 2019

La oss først lage et .NET Core-konsollapplikasjonsprosjekt i Visual Studio. Forutsatt at Visual Studio 2019 er installert i systemet ditt, følger du trinnene som er beskrevet nedenfor for å opprette et nytt .NET Core-konsollapplikasjonsprosjekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klikk på "Opprett nytt prosjekt."
  3. I vinduet "Opprett nytt prosjekt" velger du "Konsollapp (.NET Core)" fra listen over maler som vises.
  4. Klikk på Neste.
  5. I vinduet “Konfigurer ditt nye prosjekt” som vises, angir du navnet og stedet for det nye prosjektet.
  6. Klikk på Opprett.

Dette vil opprette et nytt .NET Core-konsollapplikasjonsprosjekt i Visual Studio 2019. Vi bruker dette prosjektet til å illustrere bruken av const, readonly og statiske nøkkelord i C # i de påfølgende delene av denne artikkelen.

Bruk const-nøkkelordet i C #

Nøkkelordet const (les: konstant) i C # brukes til å definere en konstant variabel, dvs. en variabel hvis verdi ikke vil endres i løpet av programmets levetid. Derfor er det viktig at du tilordner en verdi til en konstant variabel på tidspunktet for erklæringen.

Denne verdien av en konstant variabel er også kjent som en "kompileringstid" -verdi. Variabler deklarert ved hjelp av const-nøkkelordet er også kjent som kompileringstidskonstanter. Det skal bemerkes at en konstant variabel er uforanderlig, dvs. verdien som er tildelt en konstant variabel, kan ikke endres senere.

Følgende kodebit illustrerer hvordan du kan definere en kompileringstidskonstant ved hjelp av const-nøkkelordet i C #.

const string connectionString = "Angi databaseforbindelsesstrengen her.";

Merk at du må tilordne en verdi til en konstant variabel på det tidspunktet du definerer den. Vær også oppmerksom på at du ikke kan bruke const-nøkkelordet til å lage et konstant objekt. Const-nøkkelordet kan bare brukes på de primitive datatypene (for eksempel ints, floats, chars og booleans) og strenger. La oss forstå bruken av const med et eksempel.

Tenk på følgende klasse som heter Forfatter. Vi gir forfatterklassen bare noen få eiendommer for å gjøre det enkelt.

offentlig klasse Forfatter

    {

offentlig int Id {get; sett; }

offentlig streng Fornavn {get; sett; }

offentlig streng Etternavn {get; sett; }

public string Address {get; sett; }

    }

Hvis du prøver å lage et konstant objekt fra forfatterklassen ved hjelp av const-nøkkelordet, ser du kompileringsfeilen vist i figur 1 nedenfor.

Denne feilen indikerer at høyre side av oppdragsoperatøren skal ha en konstant verdi for å tilfredsstille uttrykket. Fordi uttalelsen ny forfatter () er ikke en konstant, oppgaven er ikke gyldig og dermed feilen.

Bruk skrivebeskyttet nøkkelord i C #

Det readonly nøkkelordet kan brukes til å definere en variabel eller et objekt som bare lesbart. Dette betyr at variabelen eller objektet bare kan tildeles en verdi i klassens omfang eller i en konstruktør. Du kan ikke endre verdien eller tildele en verdi til en readonly-variabel eller objekt på noen annen måte enn konstruktøren.

La oss forstå dette med et eksempel. Tenk på følgende klasse som heter DbManager.

offentlig klasse DbManager

    {

offentlig readonly string connectionString =

"Spesifiser databaseforbindelsesstrengen her.";

offentlig DbManager ()

        {

connectionString = "Du kan tilordne en verdi her.";

        }

offentlig ugyldig ReAssign ()

        {

connectionString = "Dette er ikke tillatt";

        }

    }

Ovennevnte kode vil ikke kompileres, og du vil bli presentert med feilen vist i figur 2.

Bruk det statiske nøkkelordet i C #

Det statiske nøkkelordet i C # kan brukes på en variabel, en metode eller et objekt. Merk at et statisk medlem av en klasse tilhører typen objekt i stedet for forekomsten av typen. Med andre ord er det tilgang til statiske medlemmer med navnet på klassen, ikke navnet på en forekomst.

Tenk på følgende klasse med navnet Utility som inneholder en statisk metode.

offentlig klasse Utility

    {

offentlig statisk tomrom SomeMethod ()

        {

// Skriv koden din her

        }

    }

Du kan ikke ringe metoden SomeMethod () ved hjelp av en forekomst av klassen Utility. Snarere bør du kalle denne metoden ved hjelp av følgende syntaks.

Utility.SomeMethod ();

Den samme regelen gjelder for en statisk variabel eller et statisk objekt. Du kan bare referere til et statisk medlem av en klasse ved å bruke syntaksen vist nedenfor.

Klassenavn.Medlem;

Eller

Klassenavn.Medlem();

En konstruktør i en klasse kan være statisk. En statisk konstruktør av en klasse brukes til å initialisere de statiske medlemmene i klassen. Imidlertid kan en statisk konstruktør i en klasse ikke akseptere parametere.

En regel for const, readonly og static

Her er tommelfingerregelen du kan følge når du arbeider med const, readonly og statiske søkeord. Bruk const-nøkkelordet når verdien i en variabel aldri vil endres i løpet av applikasjonens levetid. Bruk skrivebeskyttet nøkkelord når du ikke er sikker på om verdien på en variabel til et objekt må endres, men du vil forhindre at andre klasser endrer verdien. Bruk det statiske nøkkelordet når du vil at medlemmet i en klasse skal tilhøre typen i stedet for til forekomsten av typen.

Hvordan gjøre mer i C #:

  • Slik bruker du datanoteringer i C #
  • Hvordan jobbe med GUIDer i C # 8
  • Når skal jeg bruke en abstrakt klasse vs. grensesnitt i C #
  • Hvordan jobbe med AutoMapper i C #
  • Hvordan bruke lambdauttrykk i C #
  • Hvordan jobbe med Action-, Func- og Predicate-delegater i C #
  • Hvordan jobbe med delegater i C #
  • Slik implementerer du en enkel logger i C #
  • Hvordan jobbe med attributter i C #
  • Hvordan jobbe med log4net i C #
  • Slik implementerer du mønsteret for depotdesign i C #
  • Hvordan jobbe med refleksjon i C #
  • Hvordan jobbe med filsystemwatcher i C #
  • Hvordan utføre lat initialisering i C #
  • Hvordan jobbe med MSMQ i C #
  • Hvordan jobbe med utvidelsesmetoder i C #
  • Hvordan vi lambdauttrykk i C #
  • Når skal du bruke det flyktige nøkkelordet i C #
  • Slik bruker du avkastningsnøkkelordet i C #
  • Hvordan implementere polymorfisme i C #
  • Hvordan lage din egen oppgaveplanlegger i C #
  • Hvordan jobbe med RabbitMQ i C #
  • Hvordan jobbe med en tuple i C #
  • Utforske virtuelle og abstrakte metoder i C #
  • Hvordan bruke Dapper ORM i C #
  • Hvordan bruke flyvevekt mønster i C #
$config[zx-auto] not found$config[zx-overlay] not found