-1
我希望能夠調用這個方法是這樣的:C#通用方法:如何聲明這種類型?
test.TestMethod<From, To>(to => to.Prop1);
,並從要擁有IDE自動完成特性。在TestMethod
中,我想提取該屬性的名稱。在這種情況下,Prop1
。這似乎是它的工作,但我不知道Expression<Func<TTo, object>>
,特別是對象部分。
public class Test
{
public void TestMethod<TFrom, TTo>(Expression<Func<TTo, object>> p)
{
}
}
它做什麼它應該現在如果我到p遞歸,我能得到這個名字,但它不看我的權利,特別是因爲拉道具的名字看起來像:
((MemberExpression)((UnaryExpression)(((LambdaExpression)p).Body)).Operand)).Member.Name
任何方式來做這種清潔劑?
也許這樣的事情會有用嗎? http://stackoverflow.com/questions/31261955/nameof-expression-in-net-framework-4/31262225#31262225 – Rob
「我想(...)有IDE自動完成屬性」 - 因爲這是相當IDE特定的,你應該爲IDE添加適當的標籤(也許Visual Studio?或SharpDevelop?或MonoDevelop?)到你的問題。 –
@Rob - 嗯......只適用於「this」。不在TTo上。方法需要強制輸入到TTo。 – SledgeHammer