C#vs JAVA接口实例

Aiz*_*zen -2 c# java android

我不确定我怎么想回答我的问题.它是关于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方法一样.

我希望我的问题有道理.

Mat*_*zer 6

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)

使用代理可以填补空白,它可以比使用匿名类实现接口更强大.

了解有关代表的更多信息.