定义一个类如下,假设下方类中GetCount方法需要由具体情况来决定如何写的话:
public delegate decimal GetCountDelegate(object item);
public class CommonHelper
{
public event GetCountDelegate GetCountEvent;
public CommonHelper(GetCountDelegate _getCount)
{
GetCountEvent+=_getCount;
}
public decimal PrintCount(object item)
{
var count=GetCountEvent(item);
//这里可以直接使用count进行需要的处理
//do something...
return count;
}
}
调用上面这个类时,就需要传入GetCount方法的具体实现,如下:
//假设这是一个不确定类型的变量
object obj=..;
CommonHelper commonHelper=new CommonHelper((object item)=>{
decimal count=0;
if(item is Line)
{
count=(item as Line).Length;
}
else if(item is Tree)
{
count=1;
}
return count;
});
commonHelper.PrintCount(obj);
这样的话,在CommonHelper类中就可以不用实现计算数量的方法直接使用了