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 Asynchronous programming, Reflection, Unsafe code, and Expression trees.
- Asynchronous and Multi-threading - Use of async/await, locks, ThreadPool, and how to avoid deadlocks.
- Reflection - Use of type introspection to write highly dynamic code.
- Unsafe code - Use Native Interop and pointers for interfacing with unmanaged code.
- Expression trees - Understand how to build and manipulate expression trees to write Domain Specific Language (DSL) that can be used inside applications.