Partilhar via


Erro do compilador C3227

«parâmetro» : não é possível utilizar «palavra-chave» para atribuir um tipo genérico

Observações

Para instanciar um tipo, é necessário um construtor apropriado. No entanto, o compilador não é capaz de garantir que um construtor apropriado está disponível.

Você pode usar modelos em vez de genéricos para resolver esse erro ou pode usar um dos vários métodos para criar uma instância do tipo.

Example

O exemplo a seguir gera C3227.

// C3227.cpp
// compile with: /clr /c
generic<class T> interface class ICreate {
   static T Create();
};

generic <class T>
where T : ICreate<T>
ref class C {
   void f() {
      T t = new T;   // C3227

      // OK
      T t2 = ICreate<T>::Create();
      T t3 = safe_cast<T>( System::Activator::CreateInstance(T::typeid) );
   }
};