Compiler Error C3470

'type' : a class cannot have both an indexer (default indexed property) and an operator[]

A type cannot define both a default indexer and an operator[].

Example

The following sample generates C3470

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

ref class R {
public:
   property int default[int] {
      int get(int i) {
         return i+1;
      }
   }

   int operator[](String^ s) { return Convert::ToInt32(s); }   // C3470
};

int main() {
   R ^ r = gcnew R;
   // return r[9] + r["32"] - 42;
}