Sdílet prostřednictvím


Chyba kompilátoru C3227

Parametr : nelze použít klíčové slovo k přidělení obecného typu.

Aby bylo možné vytvořit instanci typu, je vyžadován odpovídající konstruktor. Kompilátor však nemůže zajistit, aby byl k dispozici odpovídající konstruktor.

K vyřešení této chyby můžete použít šablony místo obecných typů nebo můžete k vytvoření instance typu použít některou z několika metod.

Příklad

Následující ukázka vygeneruje 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) );
   }
};