Boxing, unboxing, and nullability in C#.NET — identify the correct statements. 1) We can assign values of any type to variables of type object. 2) Converting a value type to object is called unboxing. 3) Converting an object back to a value type is called boxing. 4) A Boolean variable cannot have a value of null (without Nullable). 5) When a value type is boxed, a new object must be allocated and constructed on the managed heap.

Difficulty: Easy

Correct Answer: 1, 4, 5

Explanation:


Introduction / Context:
Boxing and unboxing are core CLR mechanisms that allow value types to be treated as objects. This question also touches on nullability of primitive value types like bool.



Given Data / Assumptions:

  • object can reference any managed type.
  • Value types (int, bool, struct) differ from reference types in storage and behavior.
  • Nullable (or T?) is not implied unless stated.


Concept / Approach:
Boxing is the conversion of a value type instance to a reference type (object), which allocates a new object on the managed heap and copies the value. Unboxing is the reverse: extracting the value type from an object reference, requiring a cast. A non-nullable bool cannot be null; only bool? can. Because object is the ultimate base type for all managed types, an object variable can hold a reference to any type instance.



Step-by-Step Solution:

(1) True — object references can point to any type (after boxing for value types).(2) False — that is the definition of boxing, not unboxing.(3) False — unboxing converts object → value type.(4) True — bool cannot be null unless declared as Nullable or bool?.(5) True — boxing allocates a new object to hold the value type's data.


Verification / Alternative check:
Write a snippet: int x = 5; object o = x; int y = (int)o; Observe the boxing (x → o) and unboxing (o → y).



Why Other Options Are Wrong:
Options that include statements 2 or 3 invert the definitions of boxing and unboxing.



Common Pitfalls:
Confusing the direction of boxing/unboxing; overlooking that non-nullable primitives cannot hold null.



Final Answer:
1, 4, 5

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion