小弟我继承和实现一个抽象类,用匿名类的方式,像Java那样,可以吗
我继承和实现一个抽象类,用匿名类的方式,像Java那样,可以吗?
我的代码如下:
但是这段代码是编译不过去的,一堆错误。
我问题就在于,c#能否如java的adaptor实现代码那样,直接new一个匿名类并且生成实例?
------解决方案--------------------
------解决方案--------------------
不可以。不需要。
Java没有委托,所以经常需要定义一个只有1个方法的接口,目的仅仅是为了传递那个方法本身。
比如Runnable
C#有委托,可以直接传方法,不需要再定义一个类。
我的代码如下:
我的本意是new一个匿名类出来,new ab(){},里面实现抽象函数f(空的,什么都不做),然后生成一个实例。
abstract class ab
{
public abstract void f();//顺便问一下。abstract的方法自动就是virtual的,对吧?
}
static void Main(string[] args)
{
//我不想显示声明一个实现类,而是想用匿名类的方式
ab obj = new ab()//能否以匿名类的方式来实现接口或者抽象类?
{
public override void f(){}
}();
}
但是这段代码是编译不过去的,一堆错误。
我问题就在于,c#能否如java的adaptor实现代码那样,直接new一个匿名类并且生成实例?
------解决方案--------------------
class ab
{
public action f;
}
ab obj = new ab
{
f = () => { }
};
------解决方案--------------------
不可以。不需要。
Java没有委托,所以经常需要定义一个只有1个方法的接口,目的仅仅是为了传递那个方法本身。
比如Runnable
C#有委托,可以直接传方法,不需要再定义一个类。