我有一个使用查询字符串参数等构建 url 的类。该类有一个方法:Url(),它返回由类属性组成的完整 url,另一个方法:UrlNew(),它允许将谓词作为参数传递以替换其中一个属性的值,然后返回修改后的 URL . 现在,我需要修改这个函数以使用两个参数,两个参数。我怎么做?我尝试将方法的参数修改为谓词列表,但我可能没有做对:
我的旧 UrlNew() 方法如下所示:
public static string Url() (Action<LGUrlBuilder> predicate)
{
var instance = new LGUrlBuilder();
if (predicate != null) predicate(instance);
return instance.BuildUrl();
}
我的新 UrlNew() 方法如下所示:
public static string UrlNew(List<Action<LGUrlBuilder>> predicateList)
{
var instance = new LGUrlBuilder();
if (predicateList != null && predicateList.Count > 0)
{
foreach (Action<LGUrlBuilder> predicate in predicateList)
{
if (predicate != null) predicate(instance);
}
}
return instance.BuildUrl();
}
这编译得很好,但是当我运行它时,在 ASPX 中使用它会给我这个错误:
CS1660: Cannot convert lambda expression to type 'System.Collections.Generic.List<System.Action<public_site.Library.LG.LGUrlBuilder>>' because it is not a delegate type
我是 C# 初学者,我确信我做错了什么。任何建议都会有所帮助。谢谢!