Erreur du compilateur C3915

'type' n’a pas de propriété indexée par défaut (indexeur de classe)

Un type n’a pas de propriété indexée par défaut.

Pour plus d'informations, consultez property.

Exemples

L’exemple suivant génère l’erreur C3915.

// C3915.cpp
// compile with: /clr
ref class X {
public:
// uncomment property to resolve this C3915
//   property int default[]
//   {
//      int get(int i)
//      {
//         return 863;
//      }
//   }
};

int main() {
   X^ x = new X;
   System::Console::WriteLine(x[1]);   // C3915
}

C3915 peut également se produire si vous tentez d’utiliser un indexeur par défaut dans la même compilation et où il a été défini avec DefaultMemberAttribute.

L’exemple suivant génère l’erreur C3915.

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

[Reflection::DefaultMember("XXX")]
ref struct A {
   property Double XXX[Double] {
      Double get(Double data) {
         return data*data;
      }
   }
};

ref struct B {
   property Double default[Double] {
      Double get(Double data) {
         return data*data;
      }
   }
};

int main() {
   A ^ mya = gcnew A();
   Console::WriteLine("{0}", mya[3]);   // C3915

   B ^ myb = gcnew B();
   Console::WriteLine("{0}", myb[3]);   // OK
}