Condividi tramite


Errore del compilatore C3915

'type' non dispone di una proprietà indicizzata predefinita (indicizzatore di classi)

Un tipo non dispone di una proprietà indicizzata predefinita.

Per altre informazioni, vedere property.

Esempi

L'esempio seguente genera l'errore 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 può verificarsi anche se si tenta di utilizzare un indicizzatore predefinito nello stesso compiland in cui è stato definito con DefaultMemberAttribute.

L'esempio seguente genera l'errore 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
}