6
Dane:jak przekazać działanie <in T> z klasą pochodną jako parametrem Akcja?
class BaseClass {}
class DerivedClass : BaseClass {}
Chcę napisać funkcję, która może przyjąć działania z parametrem klasy bazowej. Funkcja utworzy obiekt określonego typu i przekaże go do Akcji.
void MyFunction(Type type, Action<BaseClass> DoAction)
{
BaseClass obj = (BaseClass)Activator.CreateInstance(type);
DoAction(obj);
}
Chcę przekazać w AnotherFunction którego parametr jest DerivedClass:
void AnotherFunction(DerivedClass x)
{
}
Jak mam nazwać MyFunction? Poniższy jest nieważny ze względu na argument AnotherFunction:
MyFunction(typeof(DerivedClass), AnotherFunction);
+1 Pobiłeś mnie do mojej edycji. –
Myślę, że MyFunction (AnotherFunction) nie skompiluje się bez jawnego określenia ogólnego typu argumentu. – jure
@jure Masz rację, nie można wywnioskować typu. – Servy