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

Generic interfaces in C Sharp (C#) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a generic interface in C#?
A generic interface is an interface that has one or more type parameters. It allows you to define methods and properties that work with any data type specified when the interface is implemented.
Click to reveal answer
beginner
How do you declare a generic interface with one type parameter named T?
You declare it like this:
public interface IExample<T> {
void DoSomething(T item);
}
Click to reveal answer
intermediate
Why use generic interfaces instead of non-generic ones?
Generic interfaces provide type safety and code reuse. They let you write flexible code that works with any data type without losing the benefits of compile-time type checking.
Click to reveal answer
beginner
How do you implement a generic interface in a class?
You specify the type when implementing the interface. For example:<br><pre>public class MyClass : IExample&lt;int&gt; {<br>    public void DoSomething(int item) {<br>        // implementation<br>    }<br>}</pre>
Click to reveal answer
intermediate
Can a generic interface have multiple type parameters? Give an example.
Yes, it can. Example:
public interface IPair<T1, T2> {
T1 First { get; }
T2 Second { get; }
}
Click to reveal answer
What does the <T> mean in a generic interface declaration?
AIt is a placeholder for a data type specified later
BIt is a method name
CIt is a variable
DIt is a keyword to create an object
How do you specify the type when implementing a generic interface?
ABy providing the type in angle brackets after the interface name
BBy declaring a new interface
CBy using the 'new' keyword
DBy casting the interface
Which of these is a valid generic interface declaration?
Apublic interface ITest { void Do(T item); }
Bpublic class ITest<T> { void Do(T item); }
Cpublic interface ITest<T> { void Do(T item); }
Dpublic interface ITest<T> { T Do(); }
Can a generic interface have properties using the generic type?
AOnly static properties can use the generic type
BYes, properties can use the generic type
CNo, generic interfaces cannot have properties
DNo, only methods can use the generic type
What is the main advantage of using generic interfaces?
AThey allow private methods in interfaces
BThey make code run faster
CThey reduce the number of classes needed
DThey allow code reuse with type safety
Explain what a generic interface is and why it is useful.
Think about how you can write one interface that works with many data types.
You got /4 concepts.
    Describe how to implement a generic interface in a class with an example.
    Remember to specify the type in angle brackets after the interface name.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a generic interface in C#?
      easy
      A. To allow the interface to work with any data type specified later
      B. To restrict the interface to only one specific data type
      C. To make the interface private and inaccessible outside its class
      D. To automatically implement all methods without code

      Solution

      1. Step 1: Understand generic interfaces

        Generic interfaces use placeholders (type parameters) to allow flexibility in the data types they work with.
      2. Step 2: Identify the purpose

        This flexibility means the same interface can be reused with different types, making code more reusable and type-safe.
      3. Final Answer:

        To allow the interface to work with any data type specified later -> Option A
      4. Quick Check:

        Generic interface = flexible type [OK]
      Hint: Generic interfaces use placeholders for types [OK]
      Common Mistakes:
      • Thinking generic interfaces fix one type only
      • Confusing generic interfaces with access modifiers
      • Assuming generic interfaces auto-implement methods
      2. Which of the following is the correct syntax to declare a generic interface named IContainer with a type parameter T?
      easy
      A. interface IContainer<T> () { }
      B. interface IContainer { T }
      C. interface IContainer<T> { }
      D. class IContainer<T> { }

      Solution

      1. Step 1: Recall generic interface syntax

        Generic interfaces use angle brackets after the interface name to specify type parameters, like IContainer<T>.
      2. Step 2: Check each option

        interface IContainer<T> { } correctly declares a generic interface. interface IContainer { T } is invalid syntax. class IContainer<T> { } uses 'class' instead of 'interface'. interface IContainer<T> () { } has incorrect parentheses.
      3. Final Answer:

        interface IContainer<T> { } -> Option C
      4. Quick Check:

        Generic interface syntax = interface Name<T> [OK]
      Hint: Generic interfaces use angle brackets after name [OK]
      Common Mistakes:
      • Using class instead of interface keyword
      • Omitting angle brackets for type parameter
      • Adding parentheses after interface name
      3. What will be the output of the following C# code?
      interface IPrinter<T> { void Print(T item); }
      class StringPrinter : IPrinter<string> {
      public void Print(string item) { Console.WriteLine(item); }
      }
      var printer = new StringPrinter();
      printer.Print("Hello World");
      medium
      A. Hello World
      B. Compile-time error due to missing type parameter
      C. Runtime error due to invalid cast
      D. No output

      Solution

      1. Step 1: Understand interface implementation

        The class StringPrinter implements IPrinter<string> and defines the Print method to write the string to console.
      2. Step 2: Trace method call

        The Print method is called with "Hello World", so it prints this string to the console.
      3. Final Answer:

        Hello World -> Option A
      4. Quick Check:

        Implemented method prints input string [OK]
      Hint: Implemented method prints passed argument [OK]
      Common Mistakes:
      • Expecting compile error for correct generic usage
      • Confusing interface with abstract class
      • Thinking Print method returns a value
      4. Identify the error in this code snippet:
      interface IRepository<T> {
      void Add(T item);
      }
      class Repository : IRepository {
      public void Add(object item) { /* implementation */ }
      }
      medium
      A. Interface IRepository cannot have methods
      B. Class Repository must specify the type parameter when implementing IRepository
      C. Method Add should return a value
      D. Class Repository cannot implement interfaces

      Solution

      1. Step 1: Check interface implementation

        The interface IRepository is generic and requires a type parameter <T>. The class Repository implements it without specifying this type.
      2. Step 2: Identify the fix

        The class must specify the type parameter, for example IRepository<object>, to correctly implement the interface.
      3. Final Answer:

        Class Repository must specify the type parameter when implementing IRepository -> Option B
      4. Quick Check:

        Generic interface requires type parameter [OK]
      Hint: Generic interfaces need type parameters when implemented [OK]
      Common Mistakes:
      • Omitting type parameter in implementation
      • Assuming interface methods must return values
      • Thinking classes can't implement interfaces
      5. Given the generic interface and classes below, what will be the output?
      interface ITransformer<T> {
      T Transform(T input);
      }
      class IntDoubler : ITransformer<int> {
      public int Transform(int input) => input * 2;
      }
      class StringRepeater : ITransformer<string> {
      public string Transform(string input) => input + input;
      }
      var doubler = new IntDoubler();
      var repeater = new StringRepeater();
      Console.WriteLine(doubler.Transform(5));
      Console.WriteLine(repeater.Transform("Hi"));
      hard
      A. 5 HiHi
      B. 55 HiHi
      C. 10 Hi
      D. 10 HiHi

      Solution

      1. Step 1: Analyze IntDoubler.Transform

        This method doubles the integer input. For input 5, output is 5 * 2 = 10.
      2. Step 2: Analyze StringRepeater.Transform

        This method repeats the string input twice. For input "Hi", output is "Hi" + "Hi" = "HiHi".
      3. Final Answer:

        10 HiHi -> Option D
      4. Quick Check:

        Int doubled = 10, string repeated = HiHi [OK]
      Hint: Trace each Transform method with given input [OK]
      Common Mistakes:
      • Mixing outputs of different classes
      • Forgetting string concatenation doubles text
      • Assuming Transform returns original input
      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