Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
'accessor': use 'default' para aceder à propriedade padrão (indexador) da classe 'type'
Observações
Uma propriedade indexada foi acessada incorretamente. Consulte Como usar propriedades em C++/CLI para obter mais informações.
Visual Studio 2017 e posterior: no Visual Studio 2015 e anteriores, o compilador em alguns casos identificou incorretamente uma propriedade padrão como um indexador padrão. Foi possível contornar o problema usando o identificador "padrão" para acessar a propriedade. A solução alternativa em si tornou-se problemática depois que "default" foi introduzido como uma palavra-chave em C++11. Portanto, no Visual Studio 2017, os bugs que exigiam a solução alternativa foram corrigidos, e o compilador agora gera um erro quando "default" é usado para acessar a propriedade padrão de uma classe.
Example
O exemplo a seguir gera C3293 no Visual Studio 2015 e anteriores.
// 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);
}