C# reference
January 21, 2021 ยท View on GitHub
Concepts
The C# concept exercises are based on concepts. The list below contains the concepts that have been identified by the track maintainers for the C# language.
(Please do not modify this document. it is automatically generated. All text except the concept learning objectives is sourced from exercises.json which should be updated manually when a concept is added, an "new exercise" issue is raised or the exercise is completed and merged into master. Learning objectives are scraped from the concept definition text in each exercise's design.md document and should be modified there as required.)
This report is updated automatically when any design.md document is modified or csharp/reference/README.md is edited.
Introductory Concepts
- arrays (bird-watcher) - Design, Background
- assignment (cars-assemble) - Design
- base-class-library (international-calling-connoisseur) - Design
- basics (lucians-luscious-lasagna) - Design
- bit-manipulation (attack-of-the-trolls) - Design
- booleans (annalyns-infiltration) - Design, Background
- booleans (annalyns-infiltration) - Design
- casting (secure-munchester-united) - Design
- chars (squeaky-clean) - Design, Background
- classes (elons-toys) - Design, Background
- collections (tracks-on-tracks-on-tracks) - Design
- constants (authentication-system) - Design
- constructors (need-for-speed) - Design
- cross-platform (beauty-salon-goes-global) - Design
- datetimes (booking-up-for-beauty) - Design
- defensive-copying (authentication-system) - Design
- dictionaries (international-calling-connoisseur) - Design, Background
- do-while-loops (interest-is-interesting) - Design
- enums (logs-logs-logs) - Design
- equality (faceid-2) - Design, Background
- exception-filtering (instruments-of-texas) - Design
- exceptions (calculator-conundrum) - Design
- explicit-interfaces (remote-control-competition) - Design
- expression-bodied-members (the-weather-in-deather) - Design
- flag-enums (attack-of-the-trolls) - Design
- floating-point-numbers (interest-is-interesting) - Design
- for-loops (bird-watcher) - Design, Background
- foreach-loops (bird-watcher) - Design, Background
- generic-types (tracks-on-tracks-on-tracks) - Design
- if-statements (cars-assemble) - Design, Background
- implicit-casting (secure-munchester-united) - Design
- imports (red-vs-blue-darwin-style) - Design
- inheritance (wizards-and-warriors) - Design, Background
- integral-numbers (hyper-optimized-telemetry) - Design
- interfaces (remote-control-competition) - Design, Background
- interpolation (high-school-sweethearts) - Design
- lists (tracks-on-tracks-on-tracks) - Design, Background
- marker-interfaces (faceid-2) - Design
- math-operators (cars-assemble) - Design
- method-overloading (wizards-and-warriors-2) - Design
- named-arguments (wizards-and-warriors-2) - Design
- namespaces (red-vs-blue-darwin-style) - Design
- nested-types (remote-control-cleanup) - Design
- null-coalescing (tim-from-marketing) - Design
- null-conditional (tim-from-marketing) - Design
- null-forgiving (tim-from-marketing) - Design
- nullability (tim-from-marketing) - Design
- nullable-values (tim-from-marketing) - Design
- numbers (cars-assemble) - Design
- numbers (cars-assemble) - Design
- object-initializers (developer-privileges) - Design
- operator-overloading (hyperia-forex) - Design
- optional-arguments (building-telemetry) - Design, Background
- optional-parameters (wizards-and-warriors-2) - Design
- ordering (remote-control-competition) - Design
- out-parameters (building-telemetry) - Design
- overflow (hyperinflation-hits-hyperia) - Design
- parameters (building-telemetry) - Design
- properties (weighing-machine) - Design
- randomness (roll-the-die) - Design
- readonly-collections (authentication-system) - Design
- regular-expressions (parsing-log-files) - Design
- resource-cleanup (object-relational-mapping) - Design
- resource-lifetime (orm-in-one-go) - Design
- sets (faceid-2) - Design, Background
- string-builder (squeaky-clean) - Design
- string-formatting (high-school-sweethearts) - Design
- strings (log-levels) - Design, Background
- structs (land-grab-in-space) - Design
- switch-expressions (the-weather-in-deather) - Design
- switch-statements (football-match-reports) - Design
- ternary-operators (the-weather-in-deather) - Design, Background
- throw-expressions (the-weather-in-deather) - Design
- time (beauty-salon-goes-global) - Design
- timezone (beauty-salon-goes-global) - Design
- tuples (phone-number-analysis) - Design, Background
- unsigned-integers (hyper-optimized-telemetry) - Design
- user-defined-exceptions (instruments-of-texas) - Design
- verbatim-strings (high-school-sweethearts) - Design
- while-loops (interest-is-interesting) - Design
Essential Concepts
- anonymous-types (anonymous-types)
- async (async)
- attributes-advanced (attributes-advanced) - Issue
- collections-combining (linq)
- collections-filtering (linq)
- collections-mapping (linq)
- collections-ordering (linq)
- collections-reducing (linq)
- contravariance (contravariance)
- covariance (covariance)
- delegates (delegates)
- enumerables (enumerables)
- events (events)
- extension-methods (extension-methods) - Issue
- generics-advanced (generics-advanced)
- higher-order-functions (higher-order-functions) - Background
- indexers (indexers)
- lambdas (lambdas) - Background
- linq (linq) - Background
- linq-advanced (linq-advanced)
- linq-query-syntax (linq-query-syntax)
- linq-select-many (linq-select-many)
- locks (locks)
- pattern-matching-tuples (pattern-matching-tuples) - Issue
- pattern-matching-types (pattern-matching-types) - Issue
- recursion (recursion) - Background
- reflection (reflection)
- serialization (serialization)
- statics (statics)
- streams (streams)
- tasks (tasks)
- thread-safety (thread-safety)
- yield (yield)
Advanced Concepts
- aysnc-iterators (aysnc-iterators)
- boxing (boxing)
- by-ref (by-ref)
- destructors (destructors)
- dispose-pattern (dispose-pattern)
- dynamic (dynamic)
- immutability (immutability) - Background
- immutable-collections (immutable-collections)
- lazy
(lazy ) - local-functions (local-functions) - Background
- memory-allocation (memory-allocation) - Issue
- multi-dimensional-array (multi-dimensional-array)
- pointsers (pointers) - Issue
- queues (queues) - Background
- ranges (ranges) - Background
- ref-local (ref-local)
- resource-pooling (resource-pooling) - Issue
- slicing (slicing)
- stacks (stacks) - Background
- time-zones (time-zones)
- unsafe-code (unsafe-code)
Unallocated Concepts
- formatting-types (unallocated-concepts)
Learning Objectives
| Concept | Learning Objectives |
|---|---|
arrays |
|
assignment |
|
base-class-library |
|
basics |
|
booleans |
|
booleans |
|
casting |
|
chars |
|
classes |
|
collections |
|
constants |
|
constructors |
|
cross-platform |
|
datetimes |
|
defensive-copying |
|
dictionaries |
|
do-while-loops |
|
enums |
|
equality |
|
exception-filtering |
|
exceptions |
|
explicit-interfaces |
|
expression-bodied-members |
|
flag-enums |
|
floating-point-numbers |
|
for-loops |
|
foreach-loops |
|
generic-types |
|
if-statements |
|
implicit-casting |
|
imports |
|
inheritance |
|
integral-numbers |
|
interfaces |
|
interpolation |
|
lists |
|
marker-interfaces |
|
math-operators |
|
method-overloading |
|
named-arguments |
|
namespaces |
|
nested-types |
|
null-coalescing |
|
null-conditional |
|
null-forgiving |
|
nullability |
|
nullable-values |
|
numbers |
|
numbers |
|
object-initializers |
|
operator-overloading |
|
optional-arguments |
|
optional-parameters |
|
ordering |
|
out-parameters |
|
overflow |
|
parameters |
|
properties |
|
randomness |
|
readonly-collections |
|
regular-expressions |
|
resource-cleanup |
|
resource-lifetime |
|
sets |
|
string-builder |
|
string-formatting |
|
strings |
|
structs |
|
switch-expressions |
|
switch-statements |
|
ternary-operators |
|
throw-expressions |
|
time |
|
timezone |
|
tuples |
|
unsigned-integers |
|
user-defined-exceptions |
|
verbatim-strings |
|
while-loops |
|