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 generic system, using anonymous methods, closures, and lambda syntax, Language Integrated Query (LINQ), resource management, and use of dynamic types, among others.
- Generics - Understand the generic system and its interactions with inheritance via covariance and contravariance.
- Lambda and Delegates - Use anonymous methods, closures, and lambda syntax to write expressive code.
- Iterators - Understand IEnumerable, yield, and related facilities.
- Language Integrated Query (LINQ) - Use C# syntax to access .Net LINQ capabilities and interacting with IEnumerable collections.
- Resource management - Understanding IDipose and the using construct for explicit resource management.
- Anonymous Types - Use of dynamic type to interact with types whose shape is determined at runtime.