Ich habe diesen Code, um "A" als gefiltertes Ergebnis zu erhalten.Parameter von OfType <????> bei Verwendung in einer Methode mit C#
public static void RunSnippet()
{
Base xbase = new Base();
A a = new A();
B b = new B();
IEnumerable<Base> list = new List<Base>() { xbase, a, b };
Base f = list.OfType<A>().FirstOrDefault();
Console.WriteLine(f);
}
Ich brauche IEnumerable<Base> list = new List<Base>() {xbase, a, b};
von einer Funktion wie folgt zu verwenden:
public static Base Method(IEnumerable<Base> list, Base b (????)) // I'm not sure I need Base b parameter for this?
{
Base f = list.OfType<????>().FirstOrDefault();
return f;
}
public static void RunSnippet()
{
Base xbase = new Base();
A a = new A();
B b = new B();
IEnumerable<Base> list = new List<Base>() { xbase, a, b };
//Base f = list.OfType<A>().FirstOrDefault();
Base f = Method(list);
Console.WriteLine(f);
}
Welche Parameter verwende ich in '????' um das gleiche Ergebnis vom ursprünglichen Code zu erhalten?
Sie können 'Methode (Liste) 'nicht aufrufen -' Liste' ist keine 'Base', es ist ein' IEnumerable '. Das ist das zweite Mal, dass Sie diesen Fehler gemacht haben - wie komfortabel sind Sie mit "IEnumerable "? Und soll 'Methode' * immer * einen' A'-Wert zurückgeben? Wenn ja, warum wird es erklärt, um "Base" zurückzugeben, und warum können Sie nicht einfach "A" anstelle von "????" verwenden? –
@Jon: Der Parameter von Method() sollte 'IEnumerable Liste, Base b' sein. Für ???? muss ich den Typ A vom zweiten Parameter bekommen. Ich habe versucht mit (Base b) als Parameter und b.GetType() in ???>, aber es funktioniert nicht als b.GetType() Rückgabetyp nicht Base. –
prosseek