We recommend using Visual Studio 2017

Compiler Error C3101


The latest version of this topic can be found at Compiler Error C3101.

illegal expression for named attribute argument 'field'

When initializing a named attribute argument, the value must be a compile time constant.

For more information on attributes, see User-Defined Attributes.

The following sample generates C3101.

// C3101.cpp  
// compile with: /clr /c  
ref class AAttribute : System::Attribute {  
   int Field;  
extern int i;  
[assembly:A(Field = i)];   // C3101  
[assembly:A(Field = 0)];   // OK