是否可以从另一个委托.net调用委托

时间:2015-01-26 17:40:47

标签: c# delegates func

嗨,我需要你的帮助。 我有以下代码:

public class CompensationProvider
{
    private Func<List<Result_CompensationPolicy>, int> _EmployeeIdCount = (a =>
        a.Where(t => !string.IsNullOrEmpty(t.EmployeeId))
            .Select(x => x.EmployeeId)
            .Distinct()
            .Count());

 private Func<List<Result_CompensationPolicy>, string, IEnumerable<HandlerCompanyCompensationSummery>> _GroupCompensationBalanceByHandler = ((compensationPolicy, managmentCompanyId) =>
             (from p in compensationPolicy
              where string.Compare(p.AccountIdentificationNumber, managmentCompanyId, true) == 0
              group p by p.HandlerIdentificationNumber into g
              select new HandlerCompanyCompensationSummery
              {
                  AnsweringStatus = g.FirstOrDefault().AnswerStatus == (int)EventsAnsweringStatus.CompanySentFeedbackB ? g.FirstOrDefault().ErrorDescription : GetStstusText(g.FirstOrDefault().AnswerStatus),
                  AnsweringStatusId = (EventsAnsweringStatus)g.FirstOrDefault().AnswerStatus,
                  HandlerCompanyName = g.FirstOrDefault(m => !string.IsNullOrEmpty(m.ManufacturerName)).ManufacturerName,
                  HandlerCompanyId = g.FirstOrDefault(m => !string.IsNullOrEmpty(m.HandlerIdentificationNumber)).HandlerIdentificationNumber,
                  AllCompanyProducts = g.Where(p => p.AnswerStatus == (int)EventsAnsweringStatus.CompanySentInfo).Select(x => x.ProductType).Distinct(),
                  EmployeesIdCount =  _EmployeeIdCount(g.ToList()),
                  PoliciesCount = _PoliciesCount(g.ToList()),
                  CompensationSum = _CompensationSum(g.ToList())
              })
            );
}

符合EmployeesIdCount = _EmployeeIdCount(g.ToList()) 我收到此错误: 非静态字段方法或属性需要对象引用。

为什么呢?我是否必须使其静止或有另一种解决方案?

先谢谢你

1 个答案:

答案 0 :(得分:2)

如果需要使用另一个字段的初始化程序的值(这就是这里发生的事情),你需要从构造函数初始化字段。在声明时,您无法初始化该值。