Le mot-clé params n'est-il pas réellement pris en charge dans les méthodes d'extension?C# utilisant des paramètres et des méthodes d'extension
J'ai trouvé que lorsque je crée des méthodes d'extension avec le mot-clé params, j'obtiens «Aucune méthode surchargée pour X prend 2 arguments». Intellisense reconnaît la méthode d'extension et sait même qu'elle a besoin d'un tableau d'objets.
Voici quelques exemples de code:
public static DalRow EasyRetrieveSingle(this DalRow dalRow, object[] parameters)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
for (int i = 0; i < parameters.Length; i += 2)
dic.Add(parameters[i].ToString(), parameters[i + 1]);
List<DalRow> list = DalRow.RetrieveByFieldValues(dalRow.Structure, null, dic).Cast<DalRow>().ToList();
if (list.Count == 0) return null;
return list[0];
}
Voici quelques exemples de code qu'il appelle (en vain)
(new X()).EasyRetrieveSingle(1, 2);
Works pour moi. Il semble que vous manquiez 'params' dans votre extrait de code? –
Wow! Cela doit être la tête fringale froide. Mes excuses pour la question. – Daniel
Pas de soucis. S'il vous plaît ne changez pas le titre, aussi embarrassé que vous le sentez, cela aidera d'autres personnes à googler le même problème – johnc