Когда структуры не живут на стеке?

Да, вы можете.

Вариант 1 (предпочтительный): зеркалирование

Просто запустите эти команды для зеркалирования хранилища:

git clone --mirror git@example.com/upstream-repository.git
cd upstream-repository.git
git push --mirror git@example.com/new-location.git

Подробнее о зеркалировании здесь

Вариант 2: Ручное клонирование & amp; push

Первым шагом является git clone хранилище в локальном каталоге.

Затем вы добавляете новый удаленный репозиторий, используя git remote add

Затем вы можете просто git push --all отправить все туда

5
задан James B 4 March 2009 в 16:15
поделиться

5 ответов

Один типичный пример - то, где структура является членом объекта, который выделяется в "куче". Существует много дополнительной детали в этом вопросе здесь. Каково различие между структурой и классом в .NET?

7
ответ дан 18 December 2019 в 12:02
поделиться

Каждый раз, когда они - поле на классе

Необычные примеры этого:

a: Когда переменная типа значения получена:

int i = 2;
Action action = delegate {i++;}
action();
Console.WriteLine(i);

Это компилируется во что-то больше как:

class Foo {
    public int i;
    public void Bar() {i++;}
}
...
Foo foo = new Foo();
foo.i = 2;
Action action = foo.Bar;
action();
Console.WriteLine(foo.i);

b: Когда переменная типа значения используется в блоке итератора:

IEnumerable<int> GetValues() {
   for(int i = 0 ; i < 5 ; i++) yield return i;
}

(компилятор генерирует конечный автомат для представления итератора, который все локальные переменные (такой как i) поля),

4
ответ дан 18 December 2019 в 12:02
поделиться

Так же, как пример ответа с 1800 ИНФОРМАЦИЯ:

public class Foo
{
    int x;

    public Foo(int y)
    {
        x = y;
    }
}

...

Foo foo = new Foo(10);

Теперь, после того, как конструктор закончил выполняться, значение foo.x 10. Где foo.x в памяти? На "куче". Из чего тип foo.x? int иначе System.Int32, который является структурой.

Другие ответы о полученных переменных и упаковывающий и т.д. корректны также ("вид" в случае упаковки - я добавлю комментарий), но этим примером является самый самый простой и самый важный, IMO.

2
ответ дан 18 December 2019 в 12:02
поделиться

Когда экземпляр типа значения упаковывается, поле и следовательно сам экземпляр, перемещены в "кучу". Хотя, там получен, чтобы не быть никаким сомнением, что членский экземпляр типа значения некласса, когда сначала созданный всегда создается на стеке.

Структура является типом значения. Таким образом, это ведет себя как выше.

2
ответ дан 18 December 2019 в 12:02
поделиться

Уже упомянутый подробно другими

  • Членские значения полей
  • помещенные в коробку структуры (строго они не затем больше типы значения),

Кроме того:

  • Массив структур находится полностью на "куче"
  • статические структуры (не на стеке или "куче", а в специальной области все собственные)
0
ответ дан 18 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: