是的,有实现这几个方面:
如果变量是局部变量,你可以使用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;
如何改变CompanyLookupData类型的名称的东西更短。其他任何东西,都会让你的代码不易读 – saj 2012-07-11 13:03:13
我可以,但是我不想每次需要在代理中使用它们时重命名我的类,哈哈。 :) – 2012-07-11 14:10:18