Ambiti 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
1234567891011121314151617181920using 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
staticprima 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
123456789101112131415161718192021222324252627282930313233using 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 bloccoif;variable_4- ambito locale, definita nel metodomyMethod.
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 metodoMain, inclusi i sotto-blocchi come la condizioneif;variable_3è accessibile solo all'interno del bloccoif;variable_4è accessibile solo all'interno del bloccomyMethod.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.59
Ambiti 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
1234567891011121314151617181920using 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
staticprima 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
123456789101112131415161718192021222324252627282930313233using 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 bloccoif;variable_4- ambito locale, definita nel metodomyMethod.
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 metodoMain, inclusi i sotto-blocchi come la condizioneif;variable_3è accessibile solo all'interno del bloccoif;variable_4è accessibile solo all'interno del bloccomyMethod.
Grazie per i tuoi commenti!