Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
"tartozék": a típus osztály alapértelmezett tulajdonságának (indexelőjének) eléréséhez használja az "alapértelmezett" tulajdonságot
Megjegyzések
Az indexelt tulajdonság helytelenül lett elérve. További információt a Tulajdonságok használata a C++/CLI-ben című témakörben talál.
Visual Studio 2017 és újabb verziók: A Visual Studio 2015-ben és korábbi verzióiban a fordító bizonyos esetekben helytelenül állított be alapértelmezett tulajdonságot alapértelmezett indexelőként. A probléma megkerüléséhez az "alapértelmezett" azonosítót használva lehetett hozzáférni a tulajdonsághoz. Maga a kerülő megoldás problémássá vált, miután a "default" kulcsszóként be lett vezetve a C++11-ben. Ezért a Visual Studio 2017-ben kijavították azokat a hibákat, amelyek megkerülő megoldást igényeltek, és a fordító most hibát dob, amikor az "alapértelmezett" kifejezést használják egy osztály alapértelmezett tulajdonságának eléréséhez.
Example
Az alábbi példa c3293-at hoz létre a Visual Studio 2015-ben és korábbi verzióiban.
// C3293.cpp
// compile with: /clr /c
using namespace System;
ref class IndexerClass {
public:
// default indexer
property int default[int] {
int get(int index) { return 0; }
void set(int index, int value) {}
}
};
int main() {
IndexerClass ^ ic = gcnew IndexerClass;
ic->Item[0] = 21; // C3293 in VS2015 OK in VS2017
ic->default[0] = 21; // OK in VS2015 and earlier
String ^s = "Hello";
wchar_t wc = s->Chars[0]; // C3293 in VS2015 OK in VS2017
wchar_t wc2 = s->default[0]; // OK in VS2015 and earlier
Console::WriteLine(wc2);
}