Spesso è necessario utilizzare variabili aggiuntive che verranno utilizzate solo nella subroutine. Tali variabili sono chiamate locali (o locali) e possono essere manipolate solo all'interno della subroutine in cui vengono create.
 
L'ambito della variabile locale è il blocco tra parentesi graffe all'interno del quale è dichiarato. div>
Il programma principale in C# è anche una subroutine, quindi tutte le variabili dichiarate all'interno di 
void Main() sono 
variabili locali. Altre subroutine non "sanno" nulla delle variabili locali di altre subroutine.
Pertanto, è possibile limitare l'ambito (ambito) di una variabile solo alla subroutine in cui è realmente necessario. In programmazione, questa tecnica è chiamata 
incapsulamento  - nascondere la variabile per non modificarla dall'esterno.
Se è necessario dichiarare una variabile che sarebbe visibile in qualsiasi punto del programma (in qualsiasi subroutine), allora tali variabili vengono dichiarate al di fuori di tutte le subroutine (vedere il programma 3 dalla tabella sottostante).
Tali variabili sono chiamate 
global.
In C#, all'avvio del programma, tutte le variabili globali vengono automaticamente impostate a zero (le variabili booleane assumono il valore false).
Analizza tre programmi:
| 1) In questo programma, la variabile i è locale. Una variabile locale è dichiarata all'interno di una subroutine. | 
2) Qui, anche se c'è una variabile i nel programma principale (con valore 7), verrà creata una nuova variabile locale i con valore 5.  
Quando questo programma viene eseguito, il valore 75 apparirà sullo schermo. | 
3) Questo programma ha una variabile globale i. Il suo valore può essere modificato all'interno della subroutine e all'interno del programma principale. 
La procedura funzionerà con la variabile globale i e le verrà assegnato un nuovo valore pari a 2. Viene visualizzato il valore 2. | 
| 
test del vuoto statico()
{
  int io = 5;
    Console.Write("i");
}
 | 
test del vuoto statico()
{
  int io = 5;
  Console.Write("i");
}
vuoto statico Main()
{
   int io = 7;
  Console.Write("i");
  test();
}
 | 
utilizzando il sistema;
programma di classe
{
    int io;
    test del vuoto statico()
    {
  io = 2;
    }
    vuoto statico Main()
    {
        test();
        Console.Write("i");
    }
}
 |