add explanation of concepts to various design.md documents
There is a mismatch (see tables, below) between the concepts attributed to an exercise in csharp/reference/README.md which reflects the original concept-scraping task performed by the track's maintainers and what is shown for each exercise in csharp/config.json which is the official catalog of completed exercises.
The task, here, is to align the concepts associated in an exercise in csharp/config.json with those in csharp/reference/exercises.json (from which csharp/reference/README.md is generated).
For each concept found in config.json, not in exercises.json
- check if the concept is fully illustrated or described in the exercise to which it is attributed
- if the concept is fully illustrated or described then:
- add the concept's name and a brief description to the exercise's design.md document
- add the concept to the exercise in csharp/reference/exercises.json.
- if the concept is not fully illustrated or described in the exercise but it is an appropriate concept for the exercise then:
- amend the exercise's introduction.md, after.md and/or the code files and instructions to reflect the concept
- add the concept's name and a brief description to the exercise's design.md document
- add the concept to the exercise in csharp/reference/exercises.json.
- if the concept is not fully illustrated or described in the exercise and it is not an appropriate concept for the exercise then:
- add the concept to the unallocated-concepts exercise at the end of exercises.json where it can be picked up for further review
For each concept found in exercises.json, not in config.json
- check if the concept is fully illustrated or described in the exercise to which it is attributed
- if the concept if fully illustrated or described then:
- add the concept to the exercise in csharp/config.json.
- if the concept is not fully illustrated or described in the exercise but it is an appropriate concept for the exercise then:
- amend the exercise's introduction.md, after.md and/or the code files and instructions to reflect the concept
- add the concept to the exercise in csharp/config.json.
- if the concept is not fully illustrated or described in the exercise and it is not an appropriate concept for the exercise then:
- take the concept from the exercise in exercises.json and move it to the unallocated-concepts exercise in exercises.json where it can be picked up for further review
Concepts in csharp/config.json not in csharp/reference/exercises.json
| Exercise | Concept |
|---|---|
| flag-enums | compound-assignment |
| integral-numbers | casting |
| method-overloading | named-arguments |
Concepts in csharp/reference/exercises.json not in csharp/config.json
| Exercise | Concept |
|---|---|
| classes | encapsulation |
| classes | fields |
| classes | objects |
| classes | state |
| classes | visibility |
| classes | default-value |
| inheritance | polymorphism |
| basics | return-values |
| basics | mutation |
| basics | functions |
| basics | type-inference |
| basics | comments |
| basics | scoping |
| basics | variables |
| nullability | null-coalescing |
| nullability | null-conditional |
| nullability | null-forgiving |
| nullability | nullable-values |
| numbers | math-operators |
| numbers | assignment |
| dictionaries | base-class-library |
| equality | marker-interfaces |
| parameters | named-arguments |
| parameters | out-parameters |
| parameters | optional-arguments |
| time | cross-platform |
| interfaces | explicit-interfaces |
| integral-numbers | unsigned-integers |
| lists | collections |
| namespaces | imports |
| string-formatting | interpolation |
| casting | implicit-casting |
Concepts in csharp/config.json not in csharp/reference/exercises.json addressed in PR exercism/v3#2260.
The missing concepts related to classes are discussed here
The missing concepts related to classes are addressed with PR exercism/v3#2822.
Included polymorphism as part of the inheritance concept - PR exercism/v3#2887
The issues related to the basics exercise/concept have been resolved in PR exercism/v3#3059. All the missing concepts are treated as sub-concepts of the basics concept.