有一个简单的答案:不,C#不允许它以与Delphi相同的方式允许它.
对于那些了解C#而不是Delphi的人来说,这就是:http : //docwiki.embarcadero.com/RADStudio/en/Implementing_Interfaces,请参阅"按委派实现接口(仅限Win32)"部分.
我想你必须手动将方法调用传递给接口.我的C#是生锈的(我仍然可以很好地阅读它):
public class Blah : ISomeInterface
{
public ISomeInterface implementer { getter and setter here }
public int ISomeInterface.DoThis()
{
if (implementer) return implementer.DoThis();
}
public void ISomeInterface.DoThat(int param)
{
if (implementer) implementer.DoThat(param);
}
etc...
Run Code Online (Sandbox Code Playgroud)
凡DoThis与DoThat被的方法ISomeInterface必须由实现Blah.在C#中,您必须将每个方法显式委托给包含的接口.在Delphi中,当您implements在a class或interfacetype 属性之后使用关键字时,会自动完成此操作(即,在幕后生成并调用方法,对用户不可见).
我假设一些回答者对术语的使用感到困惑,implements并且 delegation在C#中有不同的含义.