编译器错误 C3228

“function”:“param”的泛型类型实参不能是“type”,它必须是值类型或句柄类型

作为泛型类型实参传递了不正确的类型。

下面的示例生成 C3228:

// C3228.cpp
// compile with: /clr
class A {};

value class B {};

generic <class T>
void Test() {}

ref class C {
public:
   generic <class T>
   static void f() {}
};

int main() {
   C::f<A>();   // C3228
   C::f<B>();   // OK

   Test<C>();   // C3228
   Test<C ^>();   // OK
}