はい、これを実現する方法はいくつかあります。
変数がローカル変数の場合は、次の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;
または、型が1つのクラス内でのみ使用される場合は、using
キーワードを使用して型のエイリアスを作成することもできます(ただし、個人的には、これによりコードの可読性が低下することがわかります)。
using CompareCompanyNonKeyFields = System.Func<CompanyLookupData, CompanyLookupData, bool>;
...
CompareCompanyNonKeyFields DELCompareNonKeyFieldsCompany = CompanyLookupData.HasIdenticalNonKeyFieldsTo;