Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Lokale og Globale Omfang | Metoder
C#-Grunnleggende

bookLokale og Globale Omfang

Omfanget til en variabel er den delen av koden hvor vi kan få tilgang til den variabelen. I C# finnes det et globalt omfang og mange mulige lokale omfang.

Når vi oppretter en variabel utenfor enhver metode, kan den nås fra nesten hvor som helst i programmet, derfor sies det at den har globalt omfang:

main.cs

main.cs

copy
1234567891011121314151617181920
using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }

Merk

Når du erklærer en variabel utenfor enhver metode, er det viktig å inkludere static-nøkkelordet før deklarasjonen.

I eksemplet ovenfor fikk vi tilgang til variabelen myVariable både i Main-metoden og i testMethod. Dette er imidlertid ikke alltid mulig.

En variabel som erklæres innenfor en kodeblokk er kun tilgjengelig innenfor den blokken og eventuelle underkodeblokker den inneholder. For eksempel er en variabel som erklæres inne i en metode kun direkte tilgjengelig i den metoden. På samme måte er en variabel som erklæres inne i en if, else if eller else-blokk kun tilgjengelig i den blokken. En slik variabel sies å ha et lokalt omfang.

Ta et øyeblikk til å gjennomgå følgende kode og prøv å forstå hvordan den fungerer:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627282930313233
using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }

I koden ovenfor er det fire variabler:

  • variable_1 – globalt omfang;
  • variable_2 – lokalt omfang, definert i Main-metoden;
  • variable_3 – lokalt omfang, definert i if-blokken;
  • variable_4 – lokalt omfang, definert i myMethod-metoden.

Programmet ovenfor kompilerer kanskje ikke i det hele tatt, men demonstrerer hvor visse variabler kan nås og hvor de ikke kan nås. Området i koden hvor en variabel kan nås kalles omfanget til den variabelen.

  • variable_1 er en global variabel og er derfor tilgjengelig nesten overalt;
  • variable_2 er tilgjengelig gjennom hele Main-metoden, inkludert underblokker som if-betingelsen;
  • variable_3 er kun tilgjengelig inne i if-blokken;
  • variable_4 er kun tilgjengelig inne i myMethod-blokken.
question mark

Hvilket nøkkelord må vi bruke for globale variabler (variabler deklarert utenfor noen metode)?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 8

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 1.59

bookLokale og Globale Omfang

Sveip for å vise menyen

Omfanget til en variabel er den delen av koden hvor vi kan få tilgang til den variabelen. I C# finnes det et globalt omfang og mange mulige lokale omfang.

Når vi oppretter en variabel utenfor enhver metode, kan den nås fra nesten hvor som helst i programmet, derfor sies det at den har globalt omfang:

main.cs

main.cs

copy
1234567891011121314151617181920
using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }

Merk

Når du erklærer en variabel utenfor enhver metode, er det viktig å inkludere static-nøkkelordet før deklarasjonen.

I eksemplet ovenfor fikk vi tilgang til variabelen myVariable både i Main-metoden og i testMethod. Dette er imidlertid ikke alltid mulig.

En variabel som erklæres innenfor en kodeblokk er kun tilgjengelig innenfor den blokken og eventuelle underkodeblokker den inneholder. For eksempel er en variabel som erklæres inne i en metode kun direkte tilgjengelig i den metoden. På samme måte er en variabel som erklæres inne i en if, else if eller else-blokk kun tilgjengelig i den blokken. En slik variabel sies å ha et lokalt omfang.

Ta et øyeblikk til å gjennomgå følgende kode og prøv å forstå hvordan den fungerer:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627282930313233
using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }

I koden ovenfor er det fire variabler:

  • variable_1 – globalt omfang;
  • variable_2 – lokalt omfang, definert i Main-metoden;
  • variable_3 – lokalt omfang, definert i if-blokken;
  • variable_4 – lokalt omfang, definert i myMethod-metoden.

Programmet ovenfor kompilerer kanskje ikke i det hele tatt, men demonstrerer hvor visse variabler kan nås og hvor de ikke kan nås. Området i koden hvor en variabel kan nås kalles omfanget til den variabelen.

  • variable_1 er en global variabel og er derfor tilgjengelig nesten overalt;
  • variable_2 er tilgjengelig gjennom hele Main-metoden, inkludert underblokker som if-betingelsen;
  • variable_3 er kun tilgjengelig inne i if-blokken;
  • variable_4 er kun tilgjengelig inne i myMethod-blokken.
question mark

Hvilket nøkkelord må vi bruke for globale variabler (variabler deklarert utenfor noen metode)?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 8
some-alt