Compiler Error CS0021
Tidak dapat menerapkan pengindeksan dengan [] ke ekspresi jenis 'jenis'
Upaya dilakukan untuk mengakses nilai melalui pengindeks pada jenis data yang tidak mendukung Pengindeks.
Anda mungkin mendapatkan CS0021 saat mencoba menggunakan pengindeks di rakitan C++. Dalam hal ini, hiasi kelas C++ dengan atribut DefaultMember
sehingga kompilator C# mengetahui pengindeks mana yang merupakan default. Sampel berikut menghasilkan CS0021.
Contoh C++ berikut ini dikompilasi ke file .dll. Perhatikan bahwa atribut DefaultMember dikomentari untuk menghasilkan kesalahan.
// CPP0021.cpp
// compile with: /clr /LD
using namespace System::Reflection;
// Uncomment the following line to resolve
//[DefaultMember("myItem")]
public ref class MyClassMC
{
public:
property int myItem[int]
{
int get(int i){ return 5; }
void set(int i, int value) {}
}
};
Contoh C# berikut memanggil file .dll. C# mencoba mengakses kelas melalui pengindeks, tetapi karena tidak ada anggota yang dinyatakan sebagai pengindeks default, kesalahan dihasilkan. Anda dapat mengatasi kesalahan dengan membatalkan komentar [DefaultMember("myItem")]
baris dalam file .cpp dalam contoh sebelumnya.
// CS0021.cs
// compile with: /reference:CPP0021.dll
public class MyClass
{
public static void Main()
{
MyClassMC myMC = new MyClassMC();
int j = myMC[1]; // CS0021
}
}
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: