Инстанцируйте Универсального Типа в классе C# [дубликат]

8
задан Martin G 8 October 2015 в 08:28
поделиться

2 ответа

Если вы хотите создать свой собственный экземпляр T, то вам нужно определить ограничение new()

class Data<T> where T: new()
 {
    T obj;

    public Data()
    {
      obj =  new T();
    }
 }

Если вы хотите передать объект, то вам нужно разрешить его в конструкторе

 class Data<T>
     {
        T obj;

        public Data(T val)
        {
          obj = val;
        }
     }
20
ответ дан 5 December 2019 в 08:24
поделиться

ВЫ можете использовать new constraint в общем определении класса, чтобы гарантировать, что T имеет конструктор по умолчанию, который вы можете вызвать. Ограничения позволяют информировать компилятор об определенных поведениях (возможностях), которых должен придерживаться общий параметр T.

class Data<T> where T : new()
{
    T obj;

    public Data()
    {
        obj = new T();
    }
}
0
ответ дан 5 December 2019 в 08:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: