編譯器錯誤 C3391
'type_arg': 對泛型參數 'param' (屬於泛型 'generic_type') 無效的類型引數,必須是不可為 Null 的實值類型
泛型類型未正確地具現化。 請檢查類型定義。 如需詳細資訊,請參閱 Nullable 和 泛型。
範例
下列範例會使用 C# 建立元件,其中包含在 C++/CLI 中撰寫泛型類型時不支援的特定條件約束的泛型型別。 如需詳細資訊,請參閱型別參數的條件約束。
// C3391.cs
// Compile by using: csc /target:library C3391.cs
// a C# program
public class GR<N>
where N : struct {}
當C3391.dll元件可用時,下列範例會產生 C3391。
// C3391_b.cpp
// Compile by using: cl /clr C3391_b.cpp
#using <C3391.dll>
using namespace System;
value class VClass {};
int main() {
GR< Nullable<VClass> >^ a =
gcnew GR< Nullable<VClass> >(); // C3391 can't be Nullable
GR<VClass>^ aa = gcnew GR<VClass>(); // OK
}