Из того, что я знаю о C# (я считаю, что я прав), типы значений выделяются в стеке, а ссылочные типы alllocated в куче. Но если поле в классе является типом значения, оно выделяется в куче, а не в стеке (я все еще прав, верно?).Должен ли стек быть действительно выделен в программе на C#?
С учетом сказанного я также знаю, что каждая программа C# является классом и состоит из классов. Это должно означать, что любая переменная, объявленная в программе C#, тип значения или ссылочный тип, должна быть выделена в куче.
Что я могу сделать, так это то, что стек не может быть действительно использован в программе на C#. Я говорю «может», потому что могут быть экстраординарные случаи, а не то, что я знаю их.
Локальные переменные функций/методов (за некоторыми исключениями) выделяются в стеке в Microsoft .NET. Вы обычно используете функции/методы в своем коде? Я :-) – xanatos
Так почему мы получаем StackOverflowExceptions? –
Я не знал об этом. Спасибо, что сообщили. Кажется, это единственный случай для стеков, верно? – afaolek