Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Lokale en Globale Scopes | Methoden
C# Basisprincipes

bookLokale en Globale Scopes

De scope van een variabele is het gedeelte van de code waarin we toegang hebben tot die variabele. In C# is er een globale scope en zijn er veel mogelijke lokale scopes.

Wanneer we een variabele buiten een methode aanmaken, kan deze vanuit vrijwel overal in het programma worden benaderd. Daarom zeggen we dat deze een globale scope heeft:

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(); } } }

Opmerking

Wanneer je een variabele buiten een methode declareert, is het belangrijk om het sleutelwoord static vóór de declaratie te plaatsen.

In het bovenstaande voorbeeld hebben we toegang tot de variabele myVariable in zowel de Main-methode als de testMethod. Dit is echter niet altijd mogelijk.

Een variabele die binnen een codeblok wordt gedeclareerd, is alleen toegankelijk binnen dat blok en eventuele sub-codeblokken die het bevat. Een variabele die bijvoorbeeld binnen een methode wordt gedeclareerd, is alleen direct toegankelijk binnen die methode. Op dezelfde manier is een variabele die binnen een if-, else if- of else-blok wordt gedeclareerd, alleen toegankelijk binnen dat blok. Zo'n variabele heeft een lokale scope.

Neem even de tijd om de volgende code te bekijken en probeer te begrijpen hoe deze werkt:

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); } } }

In de bovenstaande code zijn er vier variabelen:

  • variable_1 - globale scope;
  • variable_2 - lokale scope, gedefinieerd in de Main-methode;
  • variable_3 - lokale scope, gedefinieerd in het if-blok;
  • variable_4 - lokale scope, gedefinieerd in de myMethod-methode.

Het bovenstaande programma zal mogelijk niet compileren, maar toont aan waar bepaalde variabelen toegankelijk zijn en waar niet. Het gebied van de code waar een variabele toegankelijk is, wordt het scope van die variabele genoemd.

  • variable_1 is een globale variabele en is dus bijna overal toegankelijk;
  • variable_2 is toegankelijk binnen de gehele Main-methode, inclusief subblokken zoals de if-voorwaarde;
  • variable_3 is alleen toegankelijk binnen het if-blok;
  • variable_4 is alleen toegankelijk binnen het myMethod-blok.
question mark

Welk keyword moeten we gebruiken voor globale variabelen (variabelen gedeclareerd buiten een methode)?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 8

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain the difference between global and local scope in more detail?

Can you give an example of when to use a global variable versus a local variable?

What happens if I try to access a variable outside of its scope?

Awesome!

Completion rate improved to 1.59

bookLokale en Globale Scopes

Veeg om het menu te tonen

De scope van een variabele is het gedeelte van de code waarin we toegang hebben tot die variabele. In C# is er een globale scope en zijn er veel mogelijke lokale scopes.

Wanneer we een variabele buiten een methode aanmaken, kan deze vanuit vrijwel overal in het programma worden benaderd. Daarom zeggen we dat deze een globale scope heeft:

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(); } } }

Opmerking

Wanneer je een variabele buiten een methode declareert, is het belangrijk om het sleutelwoord static vóór de declaratie te plaatsen.

In het bovenstaande voorbeeld hebben we toegang tot de variabele myVariable in zowel de Main-methode als de testMethod. Dit is echter niet altijd mogelijk.

Een variabele die binnen een codeblok wordt gedeclareerd, is alleen toegankelijk binnen dat blok en eventuele sub-codeblokken die het bevat. Een variabele die bijvoorbeeld binnen een methode wordt gedeclareerd, is alleen direct toegankelijk binnen die methode. Op dezelfde manier is een variabele die binnen een if-, else if- of else-blok wordt gedeclareerd, alleen toegankelijk binnen dat blok. Zo'n variabele heeft een lokale scope.

Neem even de tijd om de volgende code te bekijken en probeer te begrijpen hoe deze werkt:

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); } } }

In de bovenstaande code zijn er vier variabelen:

  • variable_1 - globale scope;
  • variable_2 - lokale scope, gedefinieerd in de Main-methode;
  • variable_3 - lokale scope, gedefinieerd in het if-blok;
  • variable_4 - lokale scope, gedefinieerd in de myMethod-methode.

Het bovenstaande programma zal mogelijk niet compileren, maar toont aan waar bepaalde variabelen toegankelijk zijn en waar niet. Het gebied van de code waar een variabele toegankelijk is, wordt het scope van die variabele genoemd.

  • variable_1 is een globale variabele en is dus bijna overal toegankelijk;
  • variable_2 is toegankelijk binnen de gehele Main-methode, inclusief subblokken zoals de if-voorwaarde;
  • variable_3 is alleen toegankelijk binnen het if-blok;
  • variable_4 is alleen toegankelijk binnen het myMethod-blok.
question mark

Welk keyword moeten we gebruiken voor globale variabelen (variabelen gedeclareerd buiten een methode)?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 8
some-alt