编译器错误 C3366

“variable”:托管或 WinRT 类型的静态数据成员必须在类定义中定义

尝试在 WinRT 或 .NET 类/接口定义外部引用该类或接口的静态成员。

编译器需要知道类的完整定义(以在一次传递后发出元数据)并要求在类中初始化静态数据成员。

例如,下面的示例生成 C3366,并演示如何修复此错误:

// C3366.cpp
// compile with: /clr /c
ref class X {
   public:
   static int i;   // initialize i here to avoid C3366
};

int X::i = 5;      // C3366