Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Ambiti Locali e Globali | Metodi
Fondamenti di C#

bookAmbiti Locali e Globali

L'ambito di una variabile è la parte del codice in cui possiamo accedere a quella variabile. In C#, esistono un ambito globale e molti possibili ambiti locali.

Quando creiamo una variabile al di fuori di qualsiasi metodo, essa può essere accessibile praticamente ovunque nel programma, quindi si dice che ha ambito globale:

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

Nota

Quando si dichiara una variabile al di fuori di qualsiasi metodo, è importante includere la parola chiave static prima della sua dichiarazione.

Nell'esempio sopra, abbiamo acceduto alla variabile myVariable sia nel metodo Main che nel metodo testMethod. Tuttavia, questo non è sempre possibile.

Una variabile dichiarata all'interno di un blocco di codice è accessibile solo all'interno di quel blocco e di eventuali sotto-blocchi di codice che contiene. Ad esempio, una variabile dichiarata all'interno di un metodo è direttamente accessibile solo all'interno di quel metodo. Allo stesso modo, una variabile dichiarata all'interno di un blocco if, else if o else è accessibile solo all'interno di quel blocco. Una variabile di questo tipo si dice abbia un ambito locale.

Prenditi un momento per esaminare il seguente codice e cerca di comprenderne il funzionamento:

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

Nel codice sopra ci sono quattro variabili:

  • variable_1 - ambito globale;
  • variable_2 - ambito locale, definita nel metodo Main;
  • variable_3 - ambito locale, definita nel blocco if;
  • variable_4 - ambito locale, definita nel metodo myMethod.

Il programma sopra potrebbe non compilare affatto ma dimostra dove certe variabili possono essere accessibili e dove non possono esserlo. L'area di codice in cui una variabile può essere accessibile è chiamata ambito di quella variabile.

  • variable_1 è una variabile globale quindi è accessibile quasi ovunque;
  • variable_2 è accessibile in tutto il metodo Main, inclusi i sotto-blocchi come la condizione if;
  • variable_3 è accessibile solo all'interno del blocco if;
  • variable_4 è accessibile solo all'interno del blocco myMethod.
question mark

Quale parola chiave dobbiamo usare per le variabili globali (variabili dichiarate fuori da qualsiasi metodo)?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 6. Capitolo 8

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 1.59

bookAmbiti Locali e Globali

Scorri per mostrare il menu

L'ambito di una variabile è la parte del codice in cui possiamo accedere a quella variabile. In C#, esistono un ambito globale e molti possibili ambiti locali.

Quando creiamo una variabile al di fuori di qualsiasi metodo, essa può essere accessibile praticamente ovunque nel programma, quindi si dice che ha ambito globale:

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

Nota

Quando si dichiara una variabile al di fuori di qualsiasi metodo, è importante includere la parola chiave static prima della sua dichiarazione.

Nell'esempio sopra, abbiamo acceduto alla variabile myVariable sia nel metodo Main che nel metodo testMethod. Tuttavia, questo non è sempre possibile.

Una variabile dichiarata all'interno di un blocco di codice è accessibile solo all'interno di quel blocco e di eventuali sotto-blocchi di codice che contiene. Ad esempio, una variabile dichiarata all'interno di un metodo è direttamente accessibile solo all'interno di quel metodo. Allo stesso modo, una variabile dichiarata all'interno di un blocco if, else if o else è accessibile solo all'interno di quel blocco. Una variabile di questo tipo si dice abbia un ambito locale.

Prenditi un momento per esaminare il seguente codice e cerca di comprenderne il funzionamento:

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

Nel codice sopra ci sono quattro variabili:

  • variable_1 - ambito globale;
  • variable_2 - ambito locale, definita nel metodo Main;
  • variable_3 - ambito locale, definita nel blocco if;
  • variable_4 - ambito locale, definita nel metodo myMethod.

Il programma sopra potrebbe non compilare affatto ma dimostra dove certe variabili possono essere accessibili e dove non possono esserlo. L'area di codice in cui una variabile può essere accessibile è chiamata ambito di quella variabile.

  • variable_1 è una variabile globale quindi è accessibile quasi ovunque;
  • variable_2 è accessibile in tutto il metodo Main, inclusi i sotto-blocchi come la condizione if;
  • variable_3 è accessibile solo all'interno del blocco if;
  • variable_4 è accessibile solo all'interno del blocco myMethod.
question mark

Quale parola chiave dobbiamo usare per le variabili globali (variabili dichiarate fuori da qualsiasi metodo)?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 6. Capitolo 8
some-alt