Compiler Warning (level 1) C4817

'member' : illegal use of '.' to access this member; compiler replaced with '->'

The wrong member access operator was used.

Example

The following sample generates C4817.

// C4817.cpp
// compile with: /clr /W1
using namespace System;
int main() {
   array<Int32> ^ a = gcnew array<Int32>(100);
   Console::WriteLine( a.Length );   // C4817
   Console::WriteLine( a->Length );   // OK
}

C4817 can also be generated using /clr:oldSyntax. The following sample generates C4817.

// C4817_b.cpp
// compile with: /clr:oldSyntax /W1
using namespace System;
int main() {
   Int32 a[] = new Int32[11];
   Console::WriteLine( a.Length );
   // Console::WriteLine( a->Length );
}