Czy słowo kluczowe params naprawdę nie jest obsługiwane w ramach metod rozszerzeń?C# przy użyciu params i metod rozszerzenia
Odkryłem, że gdy tworzę metody rozszerzania za pomocą słowa kluczowego params, otrzymuję "Brak przeciążonej metody dla X ma 2 argumenty". Intellisense rozpoznaje metodę rozszerzenia, a nawet wie, że potrzebuje tablicy obiektów.
Oto niektóre przykładowy kod:
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];
}
Oto niektóre przykładowy kod, który wywołuje go (bezskutecznie)
(new X()).EasyRetrieveSingle(1, 2);
pracuje dla mnie. Wygląda na to, że brakuje ci "params" we fragmencie kodu? –
Wow! To musi być cholernie zimno. Moje przeprosiny za pytanie. – Daniel
Bez obaw. Proszę nie zmieniać tytułu, ponieważ czujecie się zawstydzeni, ponieważ pomoże to innym osobom googlować w tym samym problemie – johnc