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

Why generics are needed in C Sharp (C#) - Test Your Understanding

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

Complete the code to declare a list that can store integers.

C Sharp (C#)
List<[1]> numbers = new List<[1]>();
Drag options to blanks, or click blank then click option'
Aint
Bstring
Cdouble
Dbool
Attempts:
3 left
💡 Hint
Common Mistakes
Using string instead of int for numbers.
Forgetting to specify the type inside the angle brackets.
2fill in blank
medium

Complete the code to create a generic method that returns the default value of any type.

C Sharp (C#)
public [1] GetDefaultValue<T>() { return default(T); }
Drag options to blanks, or click blank then click option'
Aobject
Bvoid
Cint
DT
Attempts:
3 left
💡 Hint
Common Mistakes
Using void as return type when the method returns a value.
Using a specific type like int instead of the generic type.
3fill in blank
hard

Fix the error in the generic class declaration.

C Sharp (C#)
public class Box<[1]> { public T Value; }
Drag options to blanks, or click blank then click option'
Avar
BType
CT
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using a keyword like var as a type parameter.
Using a lowercase name that does not match the usage.
4fill in blank
hard

Fill both blanks to create a generic method that swaps two variables.

C Sharp (C#)
public void Swap<[1]>(ref [2] a, ref [2] b) { [2] temp = a; a = b; b = temp; }
Drag options to blanks, or click blank then click option'
AT
Bint
Dstring
Attempts:
3 left
💡 Hint
Common Mistakes
Using different types for the type parameter and variables.
Using a specific type like int instead of the generic type.
5fill in blank
hard

Fill all three blanks to create a generic dictionary comprehension that filters entries with values greater than zero.

C Sharp (C#)
var filtered = [1].Where(kv => kv.Value [2] 0).ToDictionary(kv => kv.[3], kv => kv.Value);
Drag options to blanks, or click blank then click option'
Adata
B>
CKey
Ditems
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong collection name.
Using the wrong comparison operator.
Accessing the key incorrectly.

Practice

(1/5)
1. Why are generics useful in C# programming?
easy
A. They automatically fix bugs in the code.
B. They make the program run faster by using less memory.
C. They replace the need for classes and methods.
D. They allow writing code that works with any data type without duplication.

Solution

  1. Step 1: Understand the purpose of generics

    Generics let you write one version of code that works with many data types, avoiding repeated code.
  2. Step 2: Compare other options

    The other options describe incorrect benefits or misunderstand generics' role.
  3. Final Answer:

    They allow writing code that works with any data type without duplication. -> Option D
  4. Quick Check:

    Generics = Flexible code reuse [OK]
Hint: Generics = one code, many types [OK]
Common Mistakes:
  • Thinking generics improve speed directly
  • Believing generics fix bugs automatically
  • Confusing generics with replacing classes
2. Which of the following is the correct syntax to declare a generic class in C#?
easy
A. class MyClass<T> { }
B. class MyClass[] { }
C. class MyClass<T>[] { }
D. class MyClass<T> () { }

Solution

  1. Step 1: Recall generic class syntax

    In C#, generic classes use angle brackets with a type parameter, like class MyClass<T> { }.
  2. Step 2: Check other options

    The other options use invalid syntax: arrays or parentheses are incorrect here.
  3. Final Answer:

    class MyClass<T> { } -> Option A
  4. Quick Check:

    Generic class syntax uses <T> [OK]
Hint: Generic classes use angle brackets <T> [OK]
Common Mistakes:
  • Using square brackets instead of angle brackets
  • Adding parentheses after class name
  • Combining array syntax with generics incorrectly
3. What will be the output of this C# code?
List<int> numbers = new List<int>();
numbers.Add(5);
numbers.Add(10);
Console.WriteLine(numbers[1]);
medium
A. 0
B. 5
C. 10
D. Compilation error

Solution

  1. Step 1: Understand list indexing

    The list numbers has two elements: 5 at index 0 and 10 at index 1.
  2. Step 2: Identify the printed element

    numbers[1] accesses the second element, which is 10.
  3. Final Answer:

    10 -> Option C
  4. Quick Check:

    Index 1 in list = 10 [OK]
Hint: List index starts at 0, so index 1 is second item [OK]
Common Mistakes:
  • Confusing index 0 and 1
  • Expecting compilation error due to generics
  • Thinking default value 0 is printed
4. Identify the error in this generic method declaration:
public T GetItem<T>(T item) {
    return item;
}
medium
A. Missing return type before method name
B. No error, the method is correct
C. Generic type parameter should be after method name
D. Generic type parameter should be declared in class, not method

Solution

  1. Step 1: Review generic method syntax

    The method declares a generic type parameter T correctly after the method name and returns the item.
  2. Step 2: Check other options

    The other options misunderstand generic method syntax; the code is valid.
  3. Final Answer:

    No error, the method is correct -> Option B
  4. Quick Check:

    Generic method syntax is correct [OK]
Hint: Generic methods declare <T> after method name [OK]
Common Mistakes:
  • Thinking generic type must be declared at class level only
  • Confusing method return type with generic parameter
  • Missing angle brackets around T
5. You want to create a generic method that returns the default value of any type. Which code correctly implements this in C#?
hard
A. public T GetDefault<T>() { return default(T); }
B. public T GetDefault<T>() { return null; }
C. public T GetDefault() { return default; }
D. public T GetDefault<T>() { return new T(); }

Solution

  1. Step 1: Understand how to return default value for generic type

    In C#, default(T) returns the default value for any type T, including value types and reference types.
  2. Step 2: Analyze each option

    public T GetDefault<T>() { return default(T); } uses default(T) correctly. public T GetDefault<T>() { return null; } returns null which fails for value types. public T GetDefault() { return default; } lacks generic parameter <T>. public T GetDefault<T>() { return new T(); } tries to create new instance but fails for types without parameterless constructor.
  3. Final Answer:

    public T GetDefault<T>() { return default(T); } -> Option A
  4. Quick Check:

    Use default(T) for generic default value [OK]
Hint: Use default(T) to get default generic value [OK]
Common Mistakes:
  • Returning null for value types
  • Omitting generic type parameter
  • Assuming new T() always works
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