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 din variabels datatyp med dess initierade värde. I den här lektionen får du lära dig mer om den här funktionen, som kallas implicit inskrivna lokala variabler.

Vad är implicit inskrivna 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 den här koden visas följande felmeddelande.

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

Anmärkning

Andra programmeringsspråk använder nyckelordet på var olika 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 är typen låst vid tidpunkten för deklarationen och kommer därför aldrig att kunna innehålla värden av en annan datatyp.

Variabler som använder nyckelordet var måste initieras

Det är viktigt att förstå att nyckelordet var är beroende av det värde som du använder för att initiera variabeln. Om du försöker använda nyckelordet var utan att initiera variabeln får du ett fel 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 du 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 datatypen när du deklarerar variabler kan du vara målmedveten när du skriver koden.

Sammanfattning

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

  • Nyckelordet var instruerar kompilatorn att härleda datatypen för variabeln baserat på det värde som 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.