Итак, у меня есть следующий делегат:
delegate Task<T> Atsk<T>();
У меня есть серия перегруженных конструкторов для класса.Основываясь на используемом конструкторе, фактической функции мне нужно выполнить изменения.Хотя необходимые типы известны заранее, я не буду знать, какие они есть, пока соответствующие конструкторы не будут переданы конструктору.
Если это конструкторы:
myClass (int a)
myClass (int a, int b)
myClass (int a, string b)
Исходя из этого, я хотел бы сделать следующее:
Atsk<Type1> atsk = new Atsk<Type1>(myFunc);
, если объект создан с первым конструктором
Atsk<Type2> atsk = new Atsk<Type2>(myFunc);
, если объект создан с помощью второго конструктора
Atsk<Type3> atsk = new Atsk<Type3>(myFunc);
если объект создан с третьим конструктором
Теперь, используя условную логику и жесткое кодирование типа и функции, это работает, но я думаю, было бы неплохо, если бы я мог установитьтип и функция, требуемые в конструкторе, так что единственная строка кода, в которой я нуждаюсь, это:
Atsk<myVariableType> atsk = new Atsk<myVariableType>(myVariableFunc);
интуитивно, кажется, что это должно быть возможно при использовании некоторого видалямбда, которая определяет правильные вещи, которые мне нужны в различных конструкторах, хотя я не могу понять это.Класс Type также не работает.