C#中Groovy @Delegate的等价性

时间:2016-03-20 00:51:43

标签: c# groovy

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();

0 个答案:

没有答案