Особенности хранения value type и reference type - C#
Формулировка задачи:
Всем известно, что значимые типы хранятся в стеке(смутно представляю, что он из себя представляет, было бы неплохо узнать), а ссылочные в куче.
Так вот, банально.
Класс содержащий значимые свойства, хранится в куче, а сами свойства?
Структура содержащая ссылочные свойства, хранится в стеке, а свойства в куче?
Как все это выглядит?
В итоге, правильно ли я понимаю:
1. Указатели на ссылочные типы все таки хранятся в стеке?
2. Значимые свойства ссылочных типов хранятся в куче?
3. Ссылочные свойства значимых типов так же хранятся в куче?
Отличный разбор ситуации на забугорном.
Решение задачи: «Особенности хранения value type и reference type»
textual
Листинг программы
class Program
{
static void Main()
{
Foo foo = null;
foo = new Foo();
foo.x = 0x01234567;
foo.y = 0x0123456789ABCDEF;
foo.str = "Hello";
foo.bar.x = 0xAABBCCDD;
foo.bar.foo = foo;
foo.bar.str = "World";
Bar bar;
bar.x = 0xAABBCCDD;
bar.foo = foo;
bar.str = "!!!";
}
}
class Foo
{
public int x;
public long y;
public Bar bar;
public string str;
}
struct Bar
{
public uint x;
public Foo foo;
public string str;
}