共用方式為


編譯器錯誤 C3392

'type_arg':對泛型參數 'param' (屬於泛型 'generic_type') 無效的類型引數,必須有公用的無參數建構函式

泛型類型未正確地具現化。 請檢查類型定義。 如需詳細資訊,請參閱泛型

範例

下列範例會使用 C# 建立元件,其中包含在 C++/CLI 中撰寫泛型類型時不支援的特定條件約束的泛型型別。 如需詳細資訊,請參閱型別參數的條件約束

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

當C3392.dll元件可用時,下列範例會產生 C3392。

// C3392_b.cpp
// Compile by using: cl /clr C3392_b.cpp
#using <C3392.dll>

ref class R { R(int) {} };
ref class N { N() {} };

value class V {};

ref class N2 { public: N2() {} };
ref class R2 { public: R2() {} };

int main () {
   GR<R^, V, N^>^ gr1;   // C3392
   GR<R^, V, N2^>^ gr1a; // OK

   GR<R^, N^, N^>^ gr3;  // C3392
   GR<R^, V, N2^>^ gr3a; // OK

   GR<R^, V, R^>^ gr4;   // C3392
   GR<R^, V, R2^>^ gr4a; // OK
}