编译器错误 C3915
“type”没有默认索引的属性(类索引器)
类型没有默认的索引属性。
有关详细信息,请参阅 property。
示例
以下示例生成 C3915。
// C3915.cpp
// compile with: /clr
ref class X {
public:
// uncomment property to resolve this C3915
// property int default[]
// {
// int get(int i)
// {
// return 863;
// }
// }
};
int main() {
X^ x = new X;
System::Console::WriteLine(x[1]); // C3915
}
如果尝试在使用 DefaultMemberAttribute 定义默认索引器的同一编译单位中使用默认索引器,则也可能会发生 C3915。
以下示例生成 C3915。
// C3915_b.cpp
// compile with: /clr
using namespace System;
[Reflection::DefaultMember("XXX")]
ref struct A {
property Double XXX[Double] {
Double get(Double data) {
return data*data;
}
}
};
ref struct B {
property Double default[Double] {
Double get(Double data) {
return data*data;
}
}
};
int main() {
A ^ mya = gcnew A();
Console::WriteLine("{0}", mya[3]); // C3915
B ^ myb = gcnew B();
Console::WriteLine("{0}", myb[3]); // OK
}