Groovy有以下@Delegate feature,可用于将类的方法导入另一个类,并将它们用作类的一部分:
class Worker {
def work() { // do something }
}
class Manager {
@Delegate Worker subordinate = new Worker();
}
def manager = new Manager();
manager.work() //
Manager类中不存在work
方法,但我仍然可以调用它。这里使用subordinate
实例上的工作方法。
在C#中是否有类似的方法,如果没有,如何用C#实现这一目标?
我能想到的最好的是
public class Manager
{
protected readonly Worker subordinate = new Worker();
public Worker Subordinate {
get { return this.subordinate; }
}
}
var manager = new Manager();
manager.Subordinate.work();