我想創建Class Foo,如下所示。 Foo的構造函數輸入Expression來獲得Type T的某些成員來做一些工作。構造函數不能接受輸入類型C#中的表達式<Func <T, TResult>>
class Foo<T>
{
public Foo<TResult>(Expression<Func<T, TResult>> selector)
{
List<string> memberNames = typeof(TR).GetProperties().Select(p => p.Name).ToList();
....//some work on memberNames
}
}
和創建富例如,通過代碼:
Foo<ClassA> foo = new Foo<ClassA>(u=>new{u.Property1, u.Property2});
但這不起作用。構造函數不能擁有Generc類型TResult。 怎麼辦?
經過非常掙扎vs表達式我發現了anserw並將它寫在答案中。
'美孚'不能有構造函數'Foo ' –
rbm
據我所知,你不能使用'TResult'。它需要在一個方法上設置,或者你需要像''Foo''這樣的類定義添加'TResult'。 –
smoksnes
是的,這不是編譯,但我想要的工作。 –