编译器错误 C3379

“class”:嵌套类不能将程序集访问说明符作为声明的一部分

应用于类或结构等托管类型时,publicprivate 关键字指示是否通过程序集元数据公开此类。 publicprivate 不能应用于嵌套类,嵌套类将继承封闭类的程序集访问权限。

/clr 一起使用时,refvalue 关键字指示类受托管(请参阅类和结构)。

以下示例生成 C3379:

// C3379a.cpp
// compile with: /clr
using namespace System;

public ref class A {
public:
   static int i = 9;

   public ref class BA {   // C3379
   // try the following line instead
   // ref class BA {
   public:
      static int ii = 8;
   };
};

int main() {

   A^ myA = gcnew A;
   Console::WriteLine(myA->i);

   A::BA^ myBA = gcnew A::BA;
   Console::WriteLine(myBA->ii);
}