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

Generic interfaces in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Generic Interface Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of generic interface implementation
What is the output of the following C# code that uses a generic interface?
C Sharp (C#)
using System;

interface IContainer<T>
{
    T GetItem();
}

class Box<T> : IContainer<T>
{
    private T item;
    public Box(T item) { this.item = item; }
    public T GetItem() => item;
}

class Program
{
    static void Main()
    {
        IContainer<string> container = new Box<string>("Hello");
        Console.WriteLine(container.GetItem());
    }
}
AHello
BSystem.String
CBox`1
DCompilation error
Attempts:
2 left
💡 Hint
Look at what the GetItem method returns and what is passed to the Box constructor.
Predict Output
intermediate
2:00remaining
Output of generic interface with multiple types
What will be printed when running this C# program using a generic interface with different types?
C Sharp (C#)
using System;

interface IPrinter<T>
{
    void Print(T value);
}

class Printer<T> : IPrinter<T>
{
    public void Print(T value) => Console.WriteLine($"Value: {value}");
}

class Program
{
    static void Main()
    {
        IPrinter<int> intPrinter = new Printer<int>();
        IPrinter<double> doublePrinter = new Printer<double>();
        intPrinter.Print(5);
        doublePrinter.Print(3.14);
    }
}
AValue: 5\nValue: 3.14
BValue: 5.0\nValue: 3.14
C5\n3.14
DCompilation error due to interface mismatch
Attempts:
2 left
💡 Hint
Check how the Print method formats the output string.
🔧 Debug
advanced
2:00remaining
Identify the error in generic interface implementation
What error will this C# code produce when compiled?
C Sharp (C#)
interface IRepository<T>
{
    void Add(T item);
    T Get(int id);
}

class Repository : IRepository<int>
{
    public void Add(int item) { }
    public string Get(int id) { return "item"; }
}
ARuntime error: InvalidCastException
BNo error, compiles and runs fine
CCompilation error: 'Repository.Get(int)' does not implement interface member 'IRepository<int>.Get(int)'
DCompilation error: Missing method Add
Attempts:
2 left
💡 Hint
Check the return type of the Get method in the class versus the interface.
📝 Syntax
advanced
2:00remaining
Which option correctly declares a generic interface with two type parameters?
Select the correct syntax for declaring a generic interface with two type parameters TKey and TValue in C#.
Ainterface IDictionary<TKey; TValue> { void Add(TKey key, TValue value); }
Binterface IDictionary<TKey, TValue> { void Add(TKey key, TValue value); }
Cinterface IDictionary<TKey TValue) { void Add(TKey key, TValue value); }
Dinterface IDictionary<T1, T2> { void Add(TKey key, TValue value); }
Attempts:
2 left
💡 Hint
Look for correct generic type parameter syntax with angle brackets and commas.
🚀 Application
expert
3:00remaining
Determine the number of items in the generic interface collection
Given the following code, what is the output of the program?
C Sharp (C#)
using System;
using System.Collections.Generic;

interface IStore<T>
{
    void Add(T item);
    int Count { get; }
}

class Store<T> : IStore<T>
{
    private List<T> items = new List<T>();
    public void Add(T item) => items.Add(item);
    public int Count => items.Count;
}

class Program
{
    static void Main()
    {
        IStore<string> store = new Store<string>();
        store.Add("apple");
        store.Add("banana");
        store.Add("cherry");
        Console.WriteLine(store.Count);
    }
}
A0
BCompilation error due to missing Count implementation
CRuntime error: NullReferenceException
D3
Attempts:
2 left
💡 Hint
Count returns the number of items added to the list.