当前位置:  开发笔记 > 编程语言 > 正文

这里正确的C#lambda语法是什么?

如何解决《这里正确的C#lambda语法是什么?》经验,为你挑选了1个好方法。



1> Marc Gravell..:

要使用字符串,您必须使用反射来获取委托;

string searchRulesMethodName = "SearchRules1";
Predicate predicate = (Predicate)
    Delegate.CreateDelegate(typeof(Predicate),
        typeof(Program).GetMethod(searchRulesMethodName));
var results = GetSearchResults(predicate);

当然,switch如果你在编译时知道所有选项,那么会更快更安全!

Predicate predicate;
switch (searchRulesMethodName) {
    case "SearchRules1": predicate = SearchRules1; break;
    case "SearchRules2": predicate = SearchRules2; break;
    default: throw new InvalidOperationException("Unknown filter: "
        + searchRulesMethodName);
}
var results = GetSearchResults(predicate);

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有