私は次の方法を持っていますが、それを一般的にするのにいくつかの困難があります。
private void AddCheckBox(CheckBox cb, Expression<Func<ISomeInterface, bool>> func)
{
var memRef = MemberReference.Create(mSomeInterfaceAttribute, func);
.......
}
の定義MemberReference.Create
は次のとおりです。
public static MemberReference<K, M> Create<K, M>(K obj, Expression<Func<K, M>> func) where K : class;
これは私が試したものです:
private void AddCheckBox<T>(CheckBox cb, Expression<Func<T, bool>> func)
{
var memRef = MemberReference.Create<T, bool>(mSomeInterfaceAttribute, func);
......
}
無効な引数エラーが発生します:
エラー 2 引数 2: 'System.Linq.Expressions.Expression>' から 'System.Linq.Expressions.Expression>' に変換できません
エラー 1 'MemberReference.Create(ISomeInterafce, System.Linq.Expressions.Expression>)' に最適なオーバーロードされたメソッドの一致に無効な引数がいくつかあります