Bird
Raised Fist0
C Sharp (C#)programming~10 mins

Object type as universal base in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a variable that can hold any type of value.

C Sharp (C#)
object [1] = 42;
Drag options to blanks, or click blank then click option'
Aobj
Bany
Cdata
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using a reserved keyword as variable name
Using a type name instead of a variable name
2fill in blank
medium

Complete the code to assign a string value to an object variable.

C Sharp (C#)
object obj = [1];
Drag options to blanks, or click blank then click option'
Anull
B100
C"hello"
Dtrue
Attempts:
3 left
💡 Hint
Common Mistakes
Using single quotes instead of double quotes for strings
Assigning a number instead of a string
3fill in blank
hard

Fix the error in the code by completing the cast from object to string.

C Sharp (C#)
object obj = "test";
string s = ([1])obj;
Drag options to blanks, or click blank then click option'
Astring
Bint
Cbool
Ddouble
Attempts:
3 left
💡 Hint
Common Mistakes
Casting to a wrong type causes runtime errors
Forgetting to cast causes compile errors
4fill in blank
hard

Fill both blanks to create an object array and assign different types of values.

C Sharp (C#)
object[] arr = new object[] { [1], [2] };
Drag options to blanks, or click blank then click option'
A"hello"
B42
Ctrue
D3.14
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around numbers
Mixing up boolean and numeric values
5fill in blank
hard

Fill all three blanks to create a method that returns an object and assigns different types inside.

C Sharp (C#)
public object GetValue(int choice) {
    return choice switch {
        1 => [1],
        2 => [2],
        _ => [3]
    };
}
Drag options to blanks, or click blank then click option'
A"apple"
B100
Cfalse
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Using quotes around booleans or numbers
Returning incompatible types without casting

Practice

(1/5)
1. What is the role of the object type in C#?
easy
A. object is used only for reference types, not value types.
B. object is used only for strings.
C. object is a special type for numeric calculations.
D. object is the universal base type for all data types.

Solution

  1. Step 1: Understand the base type concept

    In C#, object is the root type from which all other types derive, including value and reference types.
  2. Step 2: Analyze the options

    Only object is the universal base type for all data types. correctly states that object is the universal base type for all data types.
  3. Final Answer:

    object is the universal base type for all data types. -> Option D
  4. Quick Check:

    object = universal base type [OK]
Hint: Remember: all types inherit from object in C# [OK]
Common Mistakes:
  • Thinking object is only for reference types
  • Confusing object with string or numeric types
  • Assuming object is a special numeric type
2. Which of the following is the correct way to store an integer value in an object variable?
easy
A. int obj = new object(42);
B. object obj = 42;
C. object obj = new int(42);
D. object obj = "42";

Solution

  1. Step 1: Understand boxing of value types

    In C#, value types like int can be stored in an object variable by implicit boxing, e.g., object obj = 42;.
  2. Step 2: Check each option

    object obj = 42; correctly assigns an integer to an object variable. Options B and C use invalid syntax. object obj = "42"; stores a string, not an integer.
  3. Final Answer:

    object obj = 42; -> Option B
  4. Quick Check:

    Boxing int to object = object obj = 42; [OK]
Hint: Assign value directly to object for boxing [OK]
Common Mistakes:
  • Trying to use new with int type
  • Confusing string and int assignments
  • Using invalid constructors for value types
3. What will be the output of this code?
object obj = 10;
int x = (int)obj + 5;
Console.WriteLine(x);
medium
A. Runtime error
B. 10
C. 15
D. Compilation error

Solution

  1. Step 1: Understand boxing and unboxing

    The integer 10 is boxed into obj. Casting back to int unboxes it correctly.
  2. Step 2: Calculate the expression

    Unboxed value 10 plus 5 equals 15, which is printed.
  3. Final Answer:

    15 -> Option C
  4. Quick Check:

    Unbox 10 + 5 = 15 [OK]
Hint: Cast object back to int before arithmetic [OK]
Common Mistakes:
  • Forgetting to cast before adding
  • Expecting string output
  • Confusing compile and runtime errors
4. Identify the error in this code snippet:
object obj = "hello";
int num = (int)obj;
Console.WriteLine(num);
medium
A. Invalid cast exception at runtime
B. Compilation error due to type mismatch
C. No error, prints 'hello'
D. Syntax error in variable declaration

Solution

  1. Step 1: Analyze the cast operation

    The object contains a string "hello" but is cast to int, which is invalid.
  2. Step 2: Identify the error type

    This causes an InvalidCastException at runtime, not a compile-time error.
  3. Final Answer:

    Invalid cast exception at runtime -> Option A
  4. Quick Check:

    Wrong cast string to int = runtime error [OK]
Hint: Cast only to the original stored type [OK]
Common Mistakes:
  • Assuming compile-time error instead of runtime
  • Casting string to int directly
  • Ignoring exception possibility
5. Given this code, what is the best way to safely retrieve the integer value stored in obj?
object obj = 25;
// Retrieve integer value safely here
hard
A. int value = obj is int i ? i : 0;
B. int value = obj as int;
C. int value = Convert.ToInt32(obj);
D. int value = (int)obj;

Solution

  1. Step 1: Understand safe casting options

    Direct cast (A) can throw exceptions. as operator (B) cannot be used with value types like int.
  2. Step 2: Evaluate options for safety

    int value = obj is int i ? i : 0; uses pattern matching to check type before assignment, avoiding exceptions. int value = Convert.ToInt32(obj); converts but may throw if obj is not convertible.
  3. Final Answer:

    int value = obj is int i ? i : 0; -> Option A
  4. Quick Check:

    Use pattern matching for safe unboxing [OK]
Hint: Use pattern matching to safely cast object [OK]
Common Mistakes:
  • Using 'as' with value types
  • Not checking type before casting
  • Assuming Convert.ToInt32 is always safe
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard