Błąd kompilatora C3227
"parametr": nie można użyć słowa kluczowego do przydzielenia typu ogólnego
Aby utworzyć wystąpienie typu, wymagany jest odpowiedni konstruktor. Jednak kompilator nie jest w stanie zapewnić dostępności odpowiedniego konstruktora.
Możesz użyć szablonów zamiast typów ogólnych, aby rozwiązać ten błąd, lub użyć jednej z kilku metod do utworzenia wystąpienia typu.
Przykład
Poniższy przykład generuje kod 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) );
}
};