Compilerfehler C3227

'Parameter': 'Schlüsselwort' kann nicht zum Zuordnen eines generischen Typs verwendet werden.

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

Sie können Vorlagen anstelle von Generics 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) );
   }
};