是的,有几种方法可以实现这一点:
如果变量是局部变量,您可以使用var
关键字:
var DELCompareNonKeyFieldsCompany = new Func<CompanyLookupData, CompanyLookupData, bool> (CompanyLookupData.HasIdenticalNonKeyFieldsTo);
但是,如果DELCompareNonKeyFieldsCompany
是类变量(字段或属性),您可以让编译器通过从方法组转换为Func
:
Func<CompanyLookupData, CompanyLookupData, bool> DELCompareNonKeyFieldsCompany = CompanyLookupData.HasIdenticalNonKeyFieldsTo;
如果要经常使用此类型,您可能希望创建自己的委托类型:
public delegate bool CompareCompanyNonKeyFields(CompanyLookupData, CompanyLookupData);
并像这样使用它:
CompareCompanyNonKeyFields DELCompareNonKeyFieldsCompany = CompanyLookupData.HasIdenticalNonKeyFieldsTo;
或者,如果该类型仅在一个类中使用,您还可以使用using
关键字为该类型创建一个别名(尽管我个人认为这会妨碍代码的可读性):
using CompareCompanyNonKeyFields = System.Func<CompanyLookupData, CompanyLookupData, bool>;
...
CompareCompanyNonKeyFields DELCompareNonKeyFieldsCompany = CompanyLookupData.HasIdenticalNonKeyFieldsTo;