Udostępnij za pośrednictwem


Błąd kompilatora C3390

"type_arg" : nieprawidłowy argument typu dla parametru ogólnego "param" ogólnego "generic_type", musi być typem odwołania

Typ ogólny został nieprawidłowo utworzone. Sprawdź definicję typu.

Uwagi

Aby uzyskać więcej informacji, zobacz Ogólne.

Przykład

Pierwszy przykład używa języka C# do utworzenia składnika zawierającego typ ogólny. Ten typ ma pewne ograniczenia, które nie są obsługiwane podczas tworzenia typów ogólnych w języku C++/CLI. Aby uzyskać więcej informacji, zobacz Ograniczenia dotyczące parametrów typu.

// C3390.cs
// Compile by using: csc /target:library C3390.cs
// a C# program
public class GR<C, V, N>
where C : class
where V : struct
where N : new() {}

Gdy składnik C3390.dll jest dostępny, poniższy przykład generuje C3390.

// C3390_b.cpp
// Compile by using: cl /clr C3390_b.cpp
#using <C3390.dll>
ref class R { R(int) {} };
value class V {};
ref struct N { N() {} };

int main () {
   GR<V, V, N^>^ gr2;   // C3390 first type must be a ref type
   GR<R^, V, N^>^ gr2b; // OK - do this instead
}