Quelle est la différence entre une variable membre et une variable locale ?
Sont-ils les mêmes ?
Quelle est la différence entre une variable membre et une variable locale ?
Sont-ils les mêmes ?
Une variable membre est un membre d'un type et appartient à l'état de ce type. Une variable locale n'est pas membre d'un type et représente le stockage local plutôt que l'état d'une instance d'un type donné.
Mais tout cela est très abstrait. Voici un exemple en C# :
class Program
{
static void Main()
{
// This is a local variable. Its lifespan
// is determined by lexical scope.
Foo foo;
}
}
class Foo
{
// This is a member variable - a new instance
// of this variable will be created for each
// new instance of Foo. The lifespan of this
// variable is equal to the lifespan of "this"
// instance of Foo.
int bar;
}
Il existe deux types de variables membres : instance et statique.
Une variable d'instance dure aussi longtemps que l'instance de la classe. Il y aura une copie de cette variable par instance.
Une variable statique dure aussi longtemps que la classe. Il n'en existe qu'une seule copie pour l'ensemble de la classe.
Une variable locale est déclarée dans une méthode et ne dure que jusqu'au retour de la méthode :
public class Example {
private int _instanceVariable = 1;
private static int _staticvariable = 2;
public void Method() {
int localVariable = 3;
}
}
// Somewhere else
Example e = new Example();
// e._instanceVariable will be 1
// e._staticVariable will be 2
// localVariable does not exist
e.Method(); // While executing, localVariable exists
// Afterwards, it's gone
Une variable locale est une variable que vous déclarez dans une fonction et dont la durée de vie est limitée à cette fonction.
Une variable membre est la variable que vous déclarez dans la définition d'une classe. Sa durée de vie est à l'intérieur de cette classe seulement. C'est une variable globale. Elle peut être accessible par n'importe quelle fonction à l'intérieur de cette même classe.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.