クエリ文字列パラメータなどを使用してURLを作成するクラスがあります。クラスには、クラスプロパティから構成される完全なURLを返すUrl()メソッドと、プロパティの1つの値を置き換えるためのパラメータとして述語を渡すことができるUrlNew()メソッドがあり、変更されたURLを返します。 。ここで、この関数を変更して、両方の述語である2つのパラメーターを使用する必要があります。それ、どうやったら出来るの?メソッドのパラメーターを述語のリストとして変更しようとしましたが、おそらく正しく実行されていません。
私のOLDUrlNew()メソッドは次のようになりました。
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#の初心者であり、完全に間違ったことをしていると確信しています。どんなアドバイスも役に立ちます。ありがとう!