编译器错误 C3162

“type”: 具有析构函数的引用类型不能用作静态数据成员“member”的类型

当类还包含静态成员函数时,公共语言运行时无法知道何时运行用户定义的析构函数。

除非显式删除该对象,否则析构函数永远不会运行。

有关详细信息,请参阅

示例

以下示例生成 C3162。

// C3162.cpp
// compile with: /clr /c
ref struct A {
   ~A() { System::Console::WriteLine("in destructor"); }
   static A i;   // C3162
   static A^ a = gcnew A;   // OK
};

int main() {
   A ^ a = gcnew A;
   delete a;
}