30 votes

Quelle est la différence entre une variable membre et une variable locale ?

Quelle est la différence entre une variable membre et une variable locale ?

Sont-ils les mêmes ?

44voto

ufukgun Points 2426

Une variable locale est la variable que vous déclarez dans une fonction.

Une variable membre est la variable que vous déclarez dans une définition de classe.

31voto

Andrew Hare Points 159332

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;
}

7voto

John Saunders Points 118808

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

2voto

Kirschstein Points 5229
public class Foo
{
    private int _FooInt; // I am a member variable

    public void Bar()
    {
       int barInt; // I am a local variable
       //Bar() can see barInt and _FooInt
    }

    public void Baz()
    {
       //Baz() can only see _FooInt
    }
}

2voto

Abhiram Padhi Points 1

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.com

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.

Powered by:

X