Подтвердить что ты не робот

В чем разница между переменной-членом и локальной переменной?

В чем разница между переменной-членом и локальной переменной?

Являются ли они одинаковыми?

4b9b3361

Ответ 1

Членная переменная является членом типа и относится к этому типу. Локальная переменная не является членом типа и представляет собой локальное хранилище, а не состояние экземпляра заданного типа.

Тем не менее, все это очень абстрактно. Вот пример С#:
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;
}

Ответ 2

Локальная переменная - это переменная, которую вы объявляете в функции.

Членная переменная - это переменная, которую вы объявляете в определении класса.

Ответ 3

Существует два типа переменной-члена: экземпляр и static.

Переменная экземпляра сохраняется до экземпляра класса. Для каждого экземпляра будет одна копия.

Статическая переменная сохраняется до тех пор, пока класс. Существует один экземпляр для всего класса.

Локальная переменная объявляется в методе и продолжается до тех пор, пока метод не вернется:

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 gone

Ответ 4

Локальная переменная - это переменная, которую вы объявляете в функции. Срок ее службы находится только в этой функции.

Членная переменная - это переменная, которую вы объявляете в определении класса. Срок ее службы находится внутри этого класса. Это глобальная переменная. Доступ к ней может быть любой функцией внутри того же класса.

Ответ 5

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

Ответ 6

Членная переменная принадлежит объекту... что-то, что имеет состояние. Локальная переменная просто принадлежит таблице символов любой области, в которой вы находитесь. Однако они будут представлены в памяти так же, как у компьютера нет понятия класса... он просто видит биты, которые представляют инструкции. Локальные переменные и переменные-члены могут быть как в стеке, так и в куче.

Ответ 7

  • Переменные, объявленные в методе, являются "локальными переменными"
  • Переменные, объявленные внутри класса, не входящие в какие-либо методы, являются "переменными-членами" (глобальными переменными).
  • Переменные, объявленные внутри класса, не входящие в какие-либо методы и определенные как static, являются "переменными класса".