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.
- arrays (arrays) - Design, Background
- assignment (numbers) - Design
- base-class-library (dictionaries) - Design
- basics (basics) - Design
- booleans (booleans) - Design, Background
- booleans (booleans) - Design
- casting (casting) - Design
- chars (chars) - Design, Background
- classes (classes) - Design, Background
- collections (lists) - Design
- comments (basics) - Design
- conditionals (numbers) - Design
- conditionals-ternary (expression-bodied-members) - Design, Background
- conditionals-while (floating-point-numbers) - Design
- constants (constants) - Design
- constructors (constructors) - Design
- cross-platform (time) - Design
- datetimes (datetimes) - Design
- default-value (classes) - Design
- dictionaries (dictionaries) - Design, Background
- encapsulation (classes) - Design, Background
- enums (enums) - Design
- equality (equality) - Design, Background
- exceptions (exceptions) - Design
- explicit-interfaces (interfaces) - Design
- expression-bodied-members (expression-bodied-members) - Design
- fields (classes) - Design
- flag-enums (flag-enums) - Design
- floating-point-numbers (floating-point-numbers) - Design
- for-loops (arrays) - Design, Background
- foreach-loops (arrays) - Design, Background
- formatting-types (string-formatting) - Design
- functions (basics) - Design, Background
- implicit-casting (casting) - Design
- imports (namespaces) - Design
- inheritance (inheritance) - Design, Background
- integral-numbers (integral-numbers) - Design
- interfaces (interfaces) - Design, Background
- interpolation (string-formatting) - Design
- lists (lists) - Design, Background
- marker-interfaces (equality) - Design
- math-operators (numbers) - Design
- method-overloading (method-overloading) - Design
- mutation (basics) - Design, Background
- named-arguments (parameters) - Design
- namespaces (namespaces) - Design
- nested-types (nested-types) - Design
- null-coalescing (nullability) - Design
- null-conditional (nullability) - Design
- null-forgiving (nullability) - Design
- nullability (nullability) - Design
- nullable-values (nullability) - Design
- numbers (numbers) - Design
- numbers (numbers) - Design
- object-initializers (object-initializers) - Design
- objects (classes) - Design, Background
- operator-overloading (operator-overloading) - Design
- optional-arguments (parameters) - Design, Background
- out-parameters (parameters) - Design
- overflow (overflow) - Design
- parameters (parameters) - Design
- polymorphism (inheritance) - Design, Background
- properties (properties) - Design
- randomness (randomness) - Design
- regular-expressions (regular-expressions) - Design
- resource-cleanup (resource-cleanup) - Design
- resource-lifetime (resource-lifetime) - Design
- return-values (basics) - Design
- scoping (basics) - Design
- sets (equality) - Design, Background
- state (classes) - Design, Background
- string-builder (string-formatting) - Design
- string-formatting (string-formatting) - Design
- strings (strings) - Design, Background
- structs (structs) - Design
- switch-statements (switch-statements) - Design
- time (time) - Design
- tuples (tuples) - Design, Background
- type-inference (basics) - Design, Background
- unsigned-integers (integral-numbers) - Design
- user-defined-exceptions (user-defined-exceptions) - Design
- variables (basics) - Design, Background
- verbatim-strings (string-formatting) - Design
- visibility (classes) - Design
- 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)
- 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)
- bitwise-manipulation (unallocated-concepts)
- conditionals-do-while (unallocated-concepts)
- conditionals-if (unallocated-concepts) - Background
- generics-introduction (unallocated-concepts)
- ordering (unallocated-concepts)
| Concept | Learning Objectives |
|---|---|
arrays |
|
basics |
|
booleans |
|
booleans |
|
casting |
|
chars |
|
classes |
|
conditionals |
|
conditionals-ternary |
|
constants |
|
constructors |
|
cross-platform |
|
dictionaries |
|
enums |
|
equality |
|
exceptions |
|
expression-bodied-members |
|
flag-enums |
|
floating-point-numbers |
|
for-loops |
|
foreach-loops |
|
inheritance |
|
integral-numbers |
|
interfaces |
|
lists |
|
method-overloading |
|
named-arguments |
|
namespaces |
|
nullability |
|
numbers |
|
numbers |
|
object-initializers |
|
operator-overloading |
|
ordering |
|
parameters |
|
properties |
|
randomness |
|
resource-cleanup |
|
sets |
|
string-formatting |
|
strings |
|
structs |
|
switch-statements |
|
time |
|
tuples |
|
type-inference |
|
user-defined-exceptions |
|
verbatim-strings |
|