Freigeben über


Compilerfehler C3227

'parameter' : 'Schlüsselwort' kann nicht verwendet werden, um einen generischen Typ zuzuweisen.

Bemerkungen

Um einen Typ instanziieren zu können, ist ein entsprechender Konstruktor erforderlich. Der Compiler kann jedoch nicht sicherstellen, dass ein entsprechender Konstruktor verfügbar ist.

Sie können Vorlagen anstelle von Generika verwenden, um diesen Fehler zu beheben, oder Sie können eine von mehreren Methoden verwenden, um eine Instanz des Typs zu erstellen.

Beispiel

Im folgenden Beispiel wird C3227 generiert.

// 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) );
   }
};