4
一個鍵,以便正常Dictionary<string, Action>
我用像這樣:Lambda表達式在字典
validationsDictionary["ThisValidation"]();
然而,字符串可以錯過類型。所以,我想用一個模型的屬性的關鍵:
validationsDictionary[x => x.ThisProperty]();
但是,我不知道到底是什麼類型將是,我嘗試了這些:
Dictionary<Func<Model>, Action>
Dictionary<Expressions<Model>, Action>
Dictionary<Expression<Func<Model>>, Action>
我知道有些人不會使用函數作爲關鍵字。所以,我可以做這樣的事情:
void Validate(Expression<Func<Model>> key)
{
validationsDictionary[key.ToString()]();
}
我不知道,如果key.ToString()
是使用正確的屬性,但你得到的要點。
編輯
所以,我用這個:
Expression<Func<DisplayContentViewModel, object>> predicate
而且它就像一個治療給我做的能力:x => x.SomeProperty
我想我可以使用predicate.Name
給出名稱的字符串表示。所以現在我必須弄清楚的是,如何填充字典!
你可以使用'詞典<對象,Action>' – Zer0 2014-09-05 07:46:49
'x'應該是什麼?你不能只使用'x.ThisProperty'? (沒有lambda) – Sayse 2014-09-05 07:46:52
呃,如果你根本不想錯誤輸入字符串,爲什麼不使用'enum's? – 2014-09-05 07:47:35