Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'accessor': 'type' sınıfının varsayılan özelliğine (dizin oluşturucu) erişmek için 'default' kullanın
Açıklamalar
Dizine alınan bir özelliğe yanlış erişildi. Daha fazla bilgi için bkz . Nasıl yapılır: C++/CLI'da Özellikleri Kullanma.
Visual Studio 2017 ve üzeri: Visual Studio 2015 ve önceki sürümlerinde, derleyici bazı durumlarda varsayılan bir özelliği varsayılan dizin oluşturucu olarak yanlış tanımlamıştı. Özelliğe erişmek için "default" tanımlayıcısını kullanarak soruna geçici bir çözüm bulmak mümkündü. C++11'de varsayılan anahtar sözcük olarak kullanıma sunulduğunda geçici çözümün kendisi sorunlu hale geldi. Bu nedenle, Visual Studio 2017'de geçici çözümü gerektiren hatalar düzeltildi ve derleyici artık bir sınıfın varsayılan özelliğine erişmek için "varsayılan" kullanıldığında bir hataya neden oluyor.
Örnek
Aşağıdaki örnek, Visual Studio 2015 ve önceki sürümlerde C3293 oluşturur.
// 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);
}