我不确定我怎么想回答我的问题.它是关于Android可以实例化接口.我想用C#做.现在我很确定Java和C#的规则是你不能创建一个抽象和接口实例.
但我真的很想知道Android是如何做到这一点的.
在Android中你可以做到这一点.
public interface Checkme{
void Test();
void Test2();
}
public void myFunc(Checkme my){
//do something
}
// Now this is the actual usage.
public void Start(){
myFunc(new Checkme(){
@Override
public void Test()
{
}
@Override
public void Test2()
{
}
});
}
Run Code Online (Sandbox Code Playgroud)
实际上,一旦按Enter键,new Checkme()您将自动获得界面的覆盖方法.就像C#中接口的auto Implement方法一样.
我希望我的问题有道理.
C#不支持匿名自动实现的接口,因为它具有委托:
public void Foo(Func<string> func, Action action) {}
// call it somewhere:
instance.Foo(() => "hello world", () => Console.WriteLine("hello world"));
Run Code Online (Sandbox Code Playgroud)
使用代理可以填补空白,它可以比使用匿名类实现接口更强大.