0
0
C Sharp (C#)programming~20 mins

Multiple generic parameters in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Generic Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of generic class with two type parameters
What is the output of the following C# program?
C Sharp (C#)
using System;

class Pair<T, U>
{
    public T First { get; set; }
    public U Second { get; set; }

    public Pair(T first, U second)
    {
        First = first;
        Second = second;
    }

    public void Print()
    {
        Console.WriteLine($"{First} and {Second}");
    }
}

class Program
{
    static void Main()
    {
        var pair = new Pair<int, string>(5, "hello");
        pair.Print();
    }
}
A5 and hello
Bhello and 5
C5hello
DCompilation error
Attempts:
2 left
💡 Hint
Look at how the generic parameters are used and printed in the Print method.
Predict Output
intermediate
2:00remaining
Output of generic method with two parameters
What is the output of this C# program?
C Sharp (C#)
using System;

class Utils
{
    public static void Swap<T, U>(ref T a, ref U b)
    {
        Console.WriteLine($"Swapping {a} and {b}");
    }
}

class Program
{
    static void Main()
    {
        int x = 10;
        string y = "test";
        Utils.Swap(ref x, ref y);
    }
}
ASwapping 10 and test
BSwapping test and 10
CCompilation error due to different types
DRuntime error
Attempts:
2 left
💡 Hint
Generic methods can have multiple type parameters and can accept different types.
🔧 Debug
advanced
2:00remaining
Identify the error in generic class instantiation
What error does the following code produce?
C Sharp (C#)
class Container<T, U>
{
    public T Item1;
    public U Item2;
}

class Program
{
    static void Main()
    {
        Container<int> c = new Container<int, string>();
    }
}
ACS0029: Cannot implicitly convert type 'Container<int, string>' to 'Container<int>'
BCS0311: The type arguments for method cannot be inferred
CNo error, compiles successfully
DCS0305: Using the generic type 'Container<T, U>' requires 2 type arguments
Attempts:
2 left
💡 Hint
Check how many generic parameters the class Container expects.
📝 Syntax
advanced
2:00remaining
Which option correctly declares a generic class with two parameters?
Select the correct syntax to declare a generic class with two type parameters T and U.
Aclass MyClass<T U> { }
Bclass MyClass<T; U> { }
Cclass MyClass<T, U> { }
Dclass MyClass<T> U { }
Attempts:
2 left
💡 Hint
Generic parameters are separated by commas inside angle brackets.
🚀 Application
expert
2:00remaining
Determine the number of items in a generic dictionary
Given the following code, how many items are in the dictionary after execution?
C Sharp (C#)
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Dictionary<int, string> dict = new Dictionary<int, string>();
        dict.Add(1, "one");
        dict.Add(2, "two");
        dict[3] = "three";
        dict[2] = "deux";
    }
}
A4
B3
C2
DCompilation error
Attempts:
2 left
💡 Hint
Adding a key that already exists updates its value, not adds a new item.