| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Где хранится переменная? |
| Автор: HMLd 26.7.2011, 18:04 | ||||
Здраствуйте. Всегда писал на Си++, теперь при изучении шарпа возник вопрос. Если есть переменная типа-значения (value-type), например:
то она хранится в стеке. А если написать
то будет ли она храниться в стеке или в куче? И то же самое насчёт ref-type. Если у меня есть объект класса, то в чём разница между SomeClass obj и SomeClass obj = new SomeClass? Путаюсь, потому что в плюсах при использовании new память выделялась в куче. Насколько я понимаю, здесь не так. Спасибо. |
| Автор: Gluttton 26.7.2011, 18:37 |
| 1. Типы-значения могут храниться как в стеке так и в куче (упаковка-распаковка): http://msdn.microsoft.com/ru-ru/library/yz2be5wk%28v=vs.90%29.aspx . 2. Ссылочные типы, на сколько я понимаю, храняться только в куче. |
| Автор: HMLd 26.7.2011, 19:45 |
| Gluttton, ок, а где хранится int a = new int(); ? |
| Автор: Экскалупатор 26.7.2011, 19:51 | ||
HMLd,
записи идентичны. все будет зависеть от того где находится переменная. т.е. если это поле класса то весь класс лежит в управляемой куче. |
| Автор: CYBERDREAM 27.7.2011, 08:04 | ||
оператор new не является показателем ссылочного типа. Это вызов конструктора. так что переменная а и там и там является структурой типа int |
| Автор: HMLd 27.7.2011, 15:52 |
| Спасибо. |