Предполагая следующий метод, и я знаю, что это не работает:Возможно ли создать новый экземпляр родового типа внутри тела общего метода?
Я хочу, чтобы создать новый экземпляр универсального типа
public List<TPer> getDATA<TPer>(TPer per, int acao) where TDal: new()
{
//Is it possible create a new instance of a generic type inside the body of a generic method?
TDal dal = new TDal(); //<-- I know it is NOT OK
List<TPer> lst = new List<TPer>();
lst = dal.getDATA(per, acao);
return lst;
}
Я мог бы написать что-то вроде этого:
List<TPer> getDATA<TPer,TDal>(TPer per, int acao) where TDal: new()
Но программа, которая будет называть этот метод, не имеет доступа к TDal
:
Можно позвонить этот метод использует пустой параметр? или создать новый экземпляр родового типа внутри тела общего метода?
<TDal>
также был бы общим, но я не знаю, возможно ли создать его в качестве нового универсального типа внутри этого общего метода в C#.
Я не могу сказать, что вы пытаетесь достичь - или почему вы создаете новый '' List, а затем сразу же отбросить его. Каким образом 'TDal dal = new TDal()' "NOT OK"? –
В первой версии метода не указано, что такое «TDAL» и откуда оно происходит. Что насчет этого? – Jon
Было бы лучше, если бы вы отредактировали ваш [предыдущий вопрос] (http://stackoverflow.com/q/24739303/1043380), вместо того, чтобы перепоставлять. – gunr2171