Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

Compiler Error C3845

'member': only static data members can be initialized inside a ref class or value type

A data member inside a managed type cannot be initialized unless it is static.

The following sample generates C3845:

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

ref class A {
public:
   const Int32 n = 7;   // C3845
};

Possible resolution:

// C3845b.cpp
// compile with: /clr /c
using namespace System;

ref class A {
public:
   static Int32 n = 7;
};

Managed Extensions for C++

The following sample generates C3845:

// C3845c.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;

__gc class A {
public:
   const Int32 m = 7;   // C3845
};

Possible resolution:

// C3845d.cpp
// compile with: /clr:oldSyntax /c
#using <mscorlib.dll>
using namespace System;

__gc class A {
public:
   static Int32 n = 7;
};

Community Additions

ADD
Show:
© 2015 Microsoft