作为一个有点简单的人,我假设this MSDN page上的文件是真的:http://msdn.microsoft.com/en-us/library/d3s6tz2s%28v=vs.90%29.aspx
...我实际上相信PropertyDescriptorCollection
上的索引器属性“获取或设置指定索引号的PropertyDescriptor”如上所述。
不幸的是,在介绍性句子下面的财产声明中并不是很明显。 没有制定者。记录员只是以善意的方式开玩笑。
我已经找到了适合我需求的解决方法。但令我难以置信的是编译器与笑话一起玩。为什么编译器在出现以下情况时不会抱怨?
void joke_function(PropertyDescriptorCollection ^collection){
collection[0] = gcnew FunnyPropertyDescriptor(L"Joking", nullptr);
}
另一方面,以下正确生成“错误C3070:'Joke2 :: default':属性没有预期的'set'方法。”
// joke2.cpp : main project file.
#include "stdafx.h"
using namespace System;
ref class Joke2 {
property int default[int] {
int get(int index){
return 0;
}
}
};
int main(array<System::String ^> ^args)
{
Joke2 ^j = gcnew Joke2();
j[0] = 10; // error C3070
return 0;
}