Прямо в точку.Допустим, у меня есть простая модель наследования
class Base {}
class Inh : Base {}
, и я хочу сделать что-то вроде этого (примечание - этот код не компилируется):
class Test
{
private Dictionary<Type, Action<Base>> dict;
public Test()
{
dict = new Dictionary<Type, Action<Base>>();
}
public void Test(Inh inh)
{
}
public void Add<T>(Action<T> callback)
where T : BasePackage
{
dict.Add(typeof(T), callback);
}
}
Основная идея заключается в использованиисловарь как функция вызывающей стороны.Например, если бы я добавил функцию Test
в качестве функции обратного вызова, я мог бы позже сделать что-то вроде этого:
dict[typeof(Inh)](new Inh());
К сожалению, я не могу сам найти sulution, поэтому я прошу о помощи.Если у кого-то есть какие-либо предложения, это будет оценено.