Deklarera implicit inskrivna lokala variabler

Slutförd

C#-kompilatorn fungerar i bakgrunden för att hjälpa dig när du skriver din kod. Den kan härleda datatypen för variabler baserat på värdet som initieras. I den här lektionen får du lära dig mer om den här funktionen, som kallas för implicit typifierade lokala variabler.

Vad är implicit typifierade lokala variabler?

En implicit inskriven lokal variabel skapas med hjälp av nyckelordet var följt av en variabelinitiering. Till exempel:

var message = "Hello world!";

I det här exemplet skapades en strängvariabel med nyckelordet var i stället för nyckelordet string .

Nyckelordet var anger för C#-kompilatorn att datatypen är underförstådd av det tilldelade värdet. När typen är underförstådd fungerar variabeln på samma sätt som om den faktiska datatypen hade använts för att deklarera den. Nyckelordet var används för att spara på tangenttryckningar när typerna är långa eller när typen är uppenbar från kontexten.

I exemplet:

var message = "Hello world!";

Eftersom variabeln message omedelbart anges till string värdet "Hello World!"förstår C#-kompilatorn avsikten och behandlar varje instans av message som en instans av typen string.

I själva verket skrivs variabeln message som en string och kan aldrig ändras. Tänk till exempel på följande kod:

var message = "Hello World!";
message = 10.703m;

Om du kör koden bör du se följande felmeddelande.

(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'

Kommentar

I andra programmeringsspråk används nyckelordet var på andra sätt. I C#tilldelas variabler en typ av kompilatorn oavsett om du använder det faktiska datatypsnamnet eller tillåter kompilatorn att antyda datatypen. Med andra ord fastställs typen vid deklarationen så att variabeln aldrig kan innehålla värden av en annan datatyp.

Variabler som använder nyckelordet var måste initieras

Det är viktigt att du förstår att nyckelordet var beror av värdet du använder till att initiera variabeln. Om du försöker använda nyckelordet var utan att initiera variabeln får du ett felmeddelande när du försöker kompilera koden.

var message;

Om du försöker köra den här koden när den kompileras visas följande utdata:

(1,5): error CS0818: Implicitly-typed variables must be initialized

Varför ska jag använda nyckelordet var?

Nyckelordet var har antagits i stor utsträckning i C#-communityn. Det är troligt att om du tittar på ett kodexempel i en bok eller online ser du nyckelordet var som används i stället för det faktiska datatypsnamnet, så det är viktigt att förstå dess användning.

Nyckelordet var har en viktig användning i C#. Många gånger är typen av variabel uppenbar från initieringen. I sådana fall är det enklare att använda nyckelordet var . Nyckelordet var kan också vara användbart när du planerar koden för ett program. När du börjar utveckla kod för en uppgift kanske du inte omedelbart vet vilken datatyp som ska användas. Med hjälp av var kan du utveckla din lösning mer dynamiskt.

När du kommer igång rekommenderar vi att du fortsätter att använda det faktiska datatypsnamnet när du deklarerar variabler tills du blir mer bekväm med att arbeta med kod. Om du använder faktiska datatyper när du skriver din kod blir kodens syfte tydligare.

Sammanfattning

Här är vad du har lärt dig om nyckelordet var hittills:

  • Nyckelordet var anger för kompilatorn att den ska härleda variabelns datatyp baserat på det värde den initieras till.
  • Du kommer förmodligen att se nyckelordet var när du läser andra personers kod. Du bör dock använda datatypen när det är möjligt.