如何在特定class中使用默认接口方法?
How to use default interface methods in specific class?
public interface IPrinter
{
public void Print()
{
Console.WriteLine("Printing...");
}
}
public interface IScanner
{
public void Scan()
{
Console.WriteLine("Scanning...");
}
}
public class Copier : IPrinter, IScanner
{
public void ScannAndPrint()
{
Scan();
Print();
Console.WriteLine("Scanning and Printing complete!");
}
}
我收到以下编译器错误:
CS0103“名称 'Scan' 在当前上下文中不存在”
CS0103“名称 'Print' 在当前上下文中不存在”
如何实现这种概念?我想使用默认接口方法功能。
要使用默认接口实现,您必须将变量转换为相应接口的类型:
public void ScannAndPrint()
{
((IScanner)this).Scan();
((IPrinter)this).Print();
Console.WriteLine("Scanning and Printing complete!");
}
Online-demo: https://dotnetfiddle.net/sudQJn
public interface IPrinter
{
public void Print()
{
Console.WriteLine("Printing...");
}
}
public interface IScanner
{
public void Scan()
{
Console.WriteLine("Scanning...");
}
}
public class Copier : IPrinter, IScanner
{
public void ScannAndPrint()
{
Scan();
Print();
Console.WriteLine("Scanning and Printing complete!");
}
}
我收到以下编译器错误:
CS0103“名称 'Scan' 在当前上下文中不存在”
CS0103“名称 'Print' 在当前上下文中不存在”
如何实现这种概念?我想使用默认接口方法功能。
要使用默认接口实现,您必须将变量转换为相应接口的类型:
public void ScannAndPrint()
{
((IScanner)this).Scan();
((IPrinter)this).Print();
Console.WriteLine("Scanning and Printing complete!");
}
Online-demo: https://dotnetfiddle.net/sudQJn