Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'přistupovač': použijte 'default' k přístupu k výchozí vlastnosti (indexer) pro třídu 'type'
Poznámky
Indexovaná vlastnost byla nesprávně přístupná. Další informace najdete v tématu Postupy: Použití vlastností v C++/CLI .
Visual Studio 2017 a novější: V sadě Visual Studio 2015 a starší kompilátor v některých případech nesprávně identifikoval výchozí vlastnost jako výchozí indexer. Problém bylo možné vyřešit pomocí identifikátoru "default" pro přístup k vlastnosti. Samotné alternativní řešení začalo být problematické po zavedení výchozího slova jako klíčové slovo v jazyce C++11. Proto v sadě Visual Studio 2017 chyby, které vyžadovaly alternativní řešení, byly opraveny a kompilátor nyní vyvolá chybu, když se pro přístup k výchozí vlastnosti třídy použije výchozí vlastnost.
Příklad
Následující příklad generuje chybu C3293 ve Visual Studio 2015 a starších.
// 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);
}