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

Explicit interface implementation in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Explicit Interface Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of explicit interface implementation call
What is the output of this C# program when calling obj.Print() and ((IPrinter)obj).Print()?
C Sharp (C#)
using System;
interface IPrinter {
    void Print();
}
class Document : IPrinter {
    void IPrinter.Print() {
        Console.WriteLine("Printing from interface method");
    }
    public void Print() {
        Console.WriteLine("Printing from class method");
    }
}
class Program {
    static void Main() {
        Document obj = new Document();
        obj.Print();
        ((IPrinter)obj).Print();
    }
}
A
Printing from class method
Printing from class method
B
Printing from class method
Printing from interface method
C
Printing from interface method
Printing from class method
D
Printing from interface method
Printing from interface method
Attempts:
2 left
💡 Hint
Remember explicit interface methods can only be called through the interface reference.
Predict Output
intermediate
2:00remaining
Which method is called with explicit interface implementation?
Given the code below, what will be printed when obj.Print() is called?
C Sharp (C#)
using System;
interface IPrinter {
    void Print();
}
class Document : IPrinter {
    void IPrinter.Print() {
        Console.WriteLine("Interface Print");
    }
}
class Program {
    static void Main() {
        Document obj = new Document();
        obj.Print();
    }
}
AInterface Print
BRuntime error
CNo output
DCompilation error: 'Document' does not contain a definition for 'Print'
Attempts:
2 left
💡 Hint
Explicit interface methods are not accessible through the class instance directly.
🔧 Debug
advanced
2:00remaining
Why does this explicit interface implementation cause a runtime error?
Examine the code below. Why does calling printer.Print() cause a runtime error?
C Sharp (C#)
using System;
interface IPrinter {
    void Print();
}
class Document : IPrinter {
    void IPrinter.Print() {
        Console.WriteLine("Printing document");
    }
}
class Program {
    static void Main() {
        Document doc = new Document();
        IPrinter printer = null;
        printer.Print();
    }
}
AExplicit interface implementation is invalid and causes runtime error
BInterface method cannot be called through interface reference
Cprinter is null, so calling Print() causes a NullReferenceException
DDocument does not implement Print method properly
Attempts:
2 left
💡 Hint
Check the value of the variable used to call the method.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in explicit interface implementation
Which option contains a syntax error in explicit interface implementation?
Apublic void IPrinter.Print() { Console.WriteLine("Print"); }
Bvoid IPrinter.Print() { Console.WriteLine("Print"); }
Cvoid IPrinter.Print() => Console.WriteLine("Print");
D} ;)"tnirP"(eniLetirW.elosnoC { )(tnirP.retnirPI diov
Attempts:
2 left
💡 Hint
Explicit interface implementations cannot have access modifiers.
🚀 Application
expert
2:00remaining
How many methods are accessible from Document instance?
Given the code below, how many Print methods can be called directly from a Document instance without casting?
C Sharp (C#)
interface IPrinter {
    void Print();
}
interface IScanner {
    void Print();
}
class Document : IPrinter, IScanner {
    void IPrinter.Print() { }
    void IScanner.Print() { }
    public void Print() { }
}
A1
B2
C3
D0
Attempts:
2 left
💡 Hint
Explicit interface methods are not accessible without casting.