Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Portée des variables C#

Portée des variables C#

Dans ce didacticiel, vous découvrirez la portée des variables en C# à l'aide d'exemples.

Une portée de variable fait référence à la disponibilité de variables dans certaines parties du code.

En C#, une variable a trois types de portée :

Portée des variables au niveau de la classe C#

En C #, lorsque nous déclarons une variable dans une classe, la variable est accessible dans la classe. Ceci est connu sous le nom de portée variable au niveau de la classe .

Les variables au niveau de la classe sont appelées champs et sont déclarées en dehors des méthodes, des constructeurs et des blocs de la classe. Par exemple,

using System;
namespace VariableScope {
  class Program {

    // class level variable
    string str = "Class Level";

    public void display() {
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Sortie

Class Level

Dans l'exemple ci-dessus, nous avons initialisé une variable nommée str dans le Programme classe.

Puisqu'il s'agit d'une variable de niveau classe, nous pouvons y accéder à partir d'une méthode présente à l'intérieur de la classe.

public void display() {
  Console.WriteLine(str);
}

En effet, la variable de niveau de classe est accessible dans toute la classe.

Remarque :Nous ne pouvons pas accéder à la variable de niveau classe via des méthodes statiques. Par exemple, supposons que nous ayons une méthode statique dans le Program classe.

static void display2() {

  // Access class level variable
  // Cause an Error
  Console.WriteLine(str);
}

Portée variable au niveau de la méthode

Lorsque nous déclarons une variable à l'intérieur d'une méthode, la variable n'est pas accessible en dehors de la méthode. Ceci est connu sous le nom de portée variable au niveau de la méthode . Par exemple,

using System;

namespace VariableScope {
  class Program {

    public void method1() {
      // display variable inside method
      string str = "method level";
    }

    public void method2() {

      // accessing str from method2()
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.method2();

      Console.ReadLine();
    }
  }
}

Dans l'exemple ci-dessus, nous avons créé une variable nommée str à l'intérieur de method1() .

// Inside method1()
string str = "method level";

Ici, str est une variable au niveau de la méthode. Il n'est donc pas accessible en dehors de method1() .

Cependant, lorsque nous essayons d'accéder au str variable du method2()

// Inside method2
Console.WriteLine(str);  // Error code

nous obtenons une erreur.

Error   CS0103     The name 'str' does not exist in the current context  

En effet, les variables au niveau de la méthode ont une portée à l'intérieur de la méthode dans laquelle elles sont créées. Par exemple,

using System;
namespace VariableScope {
  class Program {

    public void display() {
     string str = "inside method";

      // accessing method level variable
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
    Program ps = new Program();
    ps.display();

    Console.ReadLine();
    }
  }
}

Sortie

inside method

Ici, nous avons créé la str variable et y a accédé dans la même méthode display() . Par conséquent, le code s'exécute sans aucune erreur.

Portée des variables de niveau bloc en C#

Lorsque nous déclarons une variable à l'intérieur d'un bloc (boucle for, boucle while, if..else), la variable n'est accessible qu'à l'intérieur du bloc. Ceci est connu sous le nom de portée variable au niveau du bloc . Par exemple,

using System;

namespace VariableScope {
  class Program {
    public void display() {

      for(int i=0;i<=3;i++) {
        	 
      }
    Console.WriteLine(i);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Dans le programme ci-dessus, nous avons initialisé une variable de niveau bloc i à l'intérieur du for boucle.

for(int i=0;i<=3;i++) {
       	 
}

Depuis je est une variable de niveau bloc, lorsque nous essayons d'accéder à la variable en dehors de for boucle,

// Outside for loop
Console.WriteLine(i);

nous obtenons une erreur.

Error	 CS0103  The name 'i' does not exist in the current context

Langue C

  1. Mot-clé global Python
  2. Pointeurs C++ avec exemples
  3. Variable C, types de données, constantes
  4. Affectations Verilog
  5. Modélisation au niveau de la porte
  6. Portée de l'échelle de temps Verilog
  7. Java - Types de variables
  8. C- Variables
  9. C - Règles de portée