Kompilatorfel C3227

Parameter : kan inte använda nyckelord för att allokera en allmän typ

Anmärkningar

För att instansiera en typ krävs en lämplig konstruktor. Kompilatorn kan dock inte se till att en lämplig konstruktor är tillgänglig.

Du kan använda mallar i stället för generiska objekt för att lösa det här felet, eller så kan du använda någon av flera metoder för att skapa en instans av typen.

Example

I följande exempel genereras 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) );
   }
};