Som før skrevet er C# typestærkt. Dette betyder at variable deklareres med deres type foran. For de simplt typer sker det sådan her:
Hver deklaration skal ende med et semikolon. Det samme skal kald til funktioner. En variabel kan deklereres og senere sættes:
En variabel der er deklæret, men ikke sat, har ingen default value. Hvis vi prøver at bruge feks. WriteLine på str1, får vi en compilerfejl.
Scope
Ovenstående variable er sat inden i en funktion og er derfor lokale. De kan ikke bruges uden for funktionen. Vi siger derfor at deres scope er funktionskroppen. Mere præcist rækker scopet af en variabel fra hvor den er deklæret og til enden af den inderste blok (feks. funktionskrop) den er deklæret i.
Variable erklæret i selve klassen hedder felter, eller fields, for at erklære felter i selve klassen skal de have en af følgende egenskaber: public, protected eller private. For de tre gælder følgende:
public - noget erklæret public er tilgængeligt af alt der har adgang til klassen.
protected - noget erklæret protected er tilgængeligt af alt i selve klassen og alt i underklasser.
private - noget erklæret private er kun tilgængeligt af noget i klassen.
Da Main er i en statisk klasse, bliver vi nødt til at oprette en anden klasse for at teste felter. Dette gøres ret let:
Mere om klasser, felter egenskaber og metoder senere. Her er bare værd at bemærke at regn0 er af referencetypen RegneKlasse.
regn0.i0 kan fint skrives til skærmen fra Main-metoden, men hvis vi skriver Console.WriteLine(regn0.i1); eller Console.WriteLine(regn0.i2); får vi følgende compilefejl: