Il est souvent nécessaire d'utiliser des variables supplémentaires qui ne seront utilisées que dans le sous-programme. De telles variables sont appelées locales (ou locales) et ne peuvent être manipulées qu'au sein du sous-programme dans lequel elles sont créées.
 
La portée de la variable locale est le bloc entre accolades dans lequel elle est déclarée. div>
Le programme principal en C# est également une sous-routine, donc toutes les variables déclarées dans 
void Main() sont des 
variables locales. Les autres sous-programmes ne "savent" rien des variables locales des autres sous-programmes.
Ainsi, il est possible de limiter la portée (portée) d'une variable uniquement au sous-programme où elle est vraiment nécessaire. En programmation, cette technique est appelée 
encapsulation  - empêcher la variable de la modifier de l'extérieur.
S'il est nécessaire de déclarer une variable qui serait visible n'importe où dans le programme (dans n'importe quel sous-programme), alors ces variables sont déclarées en dehors de tous les sous-programmes (voir le programme 3 du tableau ci-dessous).
Ces variables sont appelées 
globales.
En C#, au démarrage du programme, toutes les variables globales sont automatiquement mises à zéro (les variables booléennes prennent la valeur false).
Analysez trois programmes :
| 1) Dans ce programme, la variable i est locale. Une variable locale est déclarée à l'intérieur d'un sous-programme. | 
2) Ici, même s'il y a une variable i dans le programme principal (avec la valeur 7), une nouvelle variable locale i avec la valeur 5 sera créée.  
Lorsque ce programme est exécuté, la valeur 75 apparaîtra à l'écran. | 
3) Ce programme a une variable globale i. Sa valeur peut être modifiée à l'intérieur du sous-programme et à l'intérieur du programme principal. 
La procédure fonctionnera avec la variable globale i et lui attribuera une nouvelle valeur égale à 2. La valeur 2 s'affiche. | 
test de vide statique()
{
  int je = 5 ;
    Console.Write("je");
}
test de vide statique()
{
  int je = 5 ;
  Console.Write("je");
}
vide statique Main()
{
   int je = 7 ;
  Console.Write("je");
  test();
}
utiliser le système ;
Programme de classe
{
    int je ;
    test de vide statique()
    {
  je = 2 ;
    }
    vide statique Main()
    {
        test();
        Console.Write("je");
    }
}