Open ErikSchierboom opened 4 years ago
Should we consider closing this issue and combining the concept with struct
s? Exposure to the subtleties of heap vs. stack, large object heap, garbage collection might fit more easily in struct
s' after.md.
This is a tough call I feel. The reason why I had it as a separate exercise is because I think there is quite a bit of information here. It might be that the after.md
of the structs
exercise could be a bit dense. Maybe we could leave it open for now but still explore if we could add this information in the structs
exercise's after.md
file.
Sounds good. Part of my reasoning was the difficulties of setting puzzles. It's also related to a point I was trying to make under Exercism's Ambition here.
Yes, I read that! It is an excellent point.
This issue describes how to implement the
memory-allocation
concept exercise for the C# track.Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:
Please also watch the following video:
Goal
The goal of this exercise is to teach the student the Concept of Memory Allocation in C#.
Learning objectives
Out of scope
Span<T>
andMemory<T>
stackalloc
unsafe
code.fixed
statements.readonly
semantics.Concepts
This Concepts Exercise's Concepts are:
memory-allocation
: know what the stack and heap are; know what the garbage collector is; know how the stack and heap are different; know what the large object heap is; know what reference and value types are; know how reference and value types relate to the stack and heap.Any data types used in this exercise (e.g.
strings
) should also be added as prerequisites.Prequisites
This Concept Exercise's prerequisites Concepts are:
classes
: know how to define and work with classes.structs
: know how to define and work with structs.Resources to refer to
Hints
After
Representer
This exercise does not require any specific representation logic to be added to the representer.
Analyzer
This exercise does not require any specific analyzer logic to be added to the analyzer.
Implementing
To implement this exercise, please follow these instructions.
Help
If you have any questions while implementing the exercise, please post the questions as comments in this issue.