Async
Types
Internals
Performance
Design Patterns
100

This keyword lets a method pause without blocking a thread

What is await?

100

This method returns the default value of a type.

What is default(T)?

100

This keyword prevents a variable from being changed after assignment

What is readonly?

100

This is the mathematical equation that describes the time and spatial complexities of a function.

What is Big O Notation?

100

This pattern ensures only one instance of a class exists

What is the singleton pattern?

200

This data structure is used to control access to a shared resource during parallel code execution

What is a Lock/Mutex/Semaphore?

200

These types are stored on the heap and stack, respectively

What are reference and value types?

200

This is the process of introspecting a piece of code at runtime.

What is Reflection?

200

This property on arrays gives the number of elements in O(1) time.

What is .Length?

200

This pattern is where you register one ore more callbacks to a notifier function that invokes a callback when a change occurs

What is the observer pattern?

300

This token type is passed to async methods to support cooperative cancellation.

What is a CancellationToken?

300

The base interface for List<T>, Array<T> and Enumerable<T>

What is IEnumerable<T>?

300

This is the process of converting a value type (int, bool, struct) into a reference type (object).

--------------------

int i = 1;
object o = i;

What is boxing?

300

This side-effect is observed when the thread pool is over-utilized or the async/await machinery is mis-used?

What is thread pool starvation?

300

A family of algorithms that are interchangeable and dynamically injected at runtime based on desired functionality. Typically an alternative to conditional statements.

What is the strategy pattern?

400

This DI-friendly pattern wraps HttpClient creation and policies like retry and timeout.

Microsoft recommends to use this pattern in .NET Core application to control the number of HttpClient instances.

What is IHttpClientFactory?

400

This keyword restricts generic type parameters, e.g., to value types or to having a parameterless constructor.

interface TReturn {}
// Only allow T when it's a class and T implements TReturn
public Task DoAsync(T value) { ... }

What is the where constraint?

400

This is the .NET component that allocates and deallocates memory.

What is the Garbage Collector?

400

This pool helps you rent and return large temporary arrays to reduce GC pressure.

 What is ArrayPool<T>?

400

This pattern allows you to construct objects step‑by‑step.

What is the builder pattern?

500

This error happens when you hold a lock while awaiting, causing other awaiters to block forever.

What is a deadlock?

500

This type, introduced in C# 7 represents a read-only slice of contiguous memory that can be used to avoid allocations during iteration/introspection.

What is Span<T>?

500

This is the .NET component that compiles IL (Intermediate Language) code into machine code at runtime.

What is the JIT (Just In Time) compiler?

500

This feature fixes managed memory to prevent relocation, useful but risky for fragmentation.

--------------------

byte[] bytes = [1, 2, 3];
fixed (byte* pointerToFirst = bytes)

What is pinning?

500

Pattern where instances of an object can be created on demand

What is the factory pattern?