Developed around 2000 by Microsoft as part of its .NET initiative, C# is a general-purpose, object-oriented programming language designed for Common Language Infrastructure (CLI), and widely recognized for its structured, strong-typing and lexical scoping abilities.
This competency area includes understanding the structure of C# programs, types, and Variables, basic OOP, Properties and Indexers, Collections, Exception handling, among others.
- Program Structure - Understand the physical structure of C# programs and the use of namespaces and types.
- Types and Variables - Know the difference between value types and reference.
- Nullable Types - Understand the differences between nullable and non-nullable types.
- Basic OOP - Use classes and objects to write simple object-oriented code. Understand inheritance facilities and use of interfaces to create compositional object-oriented code.
- Properties and Indexers - Using properties and indexers on classes to provide additional safety and expressivity.
- Collections - Knowledge in trade-offs of the various standard library generic collections like List, Set, Dictionary, etc.
- Exception handling - Use of try/catch/finally for managing exceptions.