Dynamic type resolution is when the program determines the type of an object at runtime instead of compile time, allowing more flexible code but with some performance cost.
Click to reveal answer
beginner
Why does dynamic type resolution have a runtime cost?
Because the program must look up the actual type and method to call during execution, which takes extra time compared to compile-time type checking.
Click to reveal answer
intermediate
How does C# implement dynamic type resolution internally?
C# uses the Dynamic Language Runtime (DLR) which performs method binding and type checks at runtime using reflection and caching to improve performance.
Click to reveal answer
intermediate
What is a common performance impact of using 'dynamic' in C#?
Using 'dynamic' can slow down method calls because the runtime must resolve the method to invoke each time, unlike static calls which are direct.
Click to reveal answer
advanced
How can you reduce the runtime cost of dynamic type resolution?
You can cache dynamic call sites or avoid excessive use of 'dynamic' in performance-critical code to reduce overhead.
Click to reveal answer
What does dynamic type resolution mean in C#?
AUsing only static types
BDetermining object type at compile time
CIgnoring object types
DDetermining object type at runtime
✗ Incorrect
Dynamic type resolution means the program figures out the object's type while running, not before.
Which C# feature enables dynamic type resolution?
Aconst keyword
Bdynamic keyword
Cvar keyword
Dreadonly keyword
✗ Incorrect
The 'dynamic' keyword tells C# to resolve types at runtime.
What is a main cause of runtime cost when using dynamic types?
ACompile-time optimization
BStatic type checking
CRuntime method lookup
DMemory allocation only
✗ Incorrect
The runtime must find the correct method to call, which takes extra time.
Which runtime component helps with dynamic type resolution in C#?
ADynamic Language Runtime (DLR)
BCommon Language Runtime (CLR)
CJust-In-Time compiler (JIT)
DGarbage Collector (GC)
✗ Incorrect
The DLR manages dynamic operations and type resolution.
How can you improve performance when using dynamic types?