Hopp til innhold

Csharp/Variabeldeklarasjon

Fra Wikibøker – frie læremidler
(Omdirigert fra «Csharp/Kapittel5»)

Variabeldeklarasjon

[rediger]

En variabel er et mellomlager for funksjonen eller objektet vårt, og deklareres forholdsvis likt over alt. [datatype] [navn]; eksempel:

int myint;

en variabel som er deklarert inne i en klasse kan også ha en rekke nøkkel ord, som access modifiers, men også mange andre

  • const

- variabelen er ment å kun leses fra

  • volatile

- variabelen skal kunne leses og skrives til fra andre deler av systemet, som andre threads, programmer, eller operativsystem

  • readonly

- variabelen kan kun leses fra, bortsett fra i constructorer eller lignende.

Scope

[rediger]

I alle strukturerte programmeringsspråk, har man noe som heter scope. Scope er at alt innenfor "scope" er tilgjengelig, det vil si variabler og funksjoner som ligger i samme nivå, eller lavere. variabler som faller utenfor scope, vil bli slettet av garbage collectoren, hvis de ikke lenger blir referert til.

public class Step1
{
  string my_var_name;
  public void some_function()
  {
    int my_var;
    some_var = 100; // Feil, some_var er ikke definert enda
    int my_var = 100; // Riktig, my_var er definert.
    int some_var;
    // Vi flytter ett nivå opp
    while(true)
    {
      int second_var;
      second_var = 100; // Riktig! second_var er foreløpig innenfor scope;
      break;
      // En kan skrive slike som dette, uten at det er koplet til noen funksjon.
      {
        int another_var = 100; // Feil! code unreachable, altså koden er ikke tilgjengelig, siden loopen alltid bare vil kjøre koden en gang
      }
    }
    second_var = 50; // Feil! second_var er ute av scope, og derfor ikke lenger tilgjengelig
    my_var_name = "hei på deg!" // Riktig! my_var_name (som er deklarert i klassen) er innenfor scope.
  }
}

Array

[rediger]

Array skrives med tegnene [] etter datatypen flerdimensjonale arrays, skrives enten med et komma imellom hver dimensjon, eller med flere []

int[] myint; // Endimensjonal array
int[,] my_two_dimensional_int; // Todimensjonal array
int[][] my_array_of_arrays_of_int; // En array av arrayer

Initialisering

[rediger]

Alle variabler må initialiseres før de brukes. Grunnen til dette, er at alle variabler vil automatisk få en utilregnelig verdi når de deklareres, nettopp for å sikre at programmereren passer på å bruke alle variabler riktig. For å initialisere, legger vi til et er lik-tegn (=) og verdien etterpå. Verdien kan være en konstant, eller en variabel.

int myint = 0;
int oneint = myint;

For å initialisere en klasse, må vi bruke operator new. Dette gjør at man kaller en funksjon i klassen som kalles en constructor, og har samme navn som klassen.

string mystring = new string('0', 100);

Dette vil lage en tekststreng som inneholder 100 null-tegn.

For å initialisere arrays, kan vi enten tilegne den en variabel, eller bruke krøllparantes:

int[] myint = new int[] {32, 55, 21, 2, 0};
int[] myarr = myint;

Grunnen til at vi bruker new, er at Array er en klasse, og må derfor initialiseres som en.