在C ++ / CLI中设置PropertyDescriptorCollection的元素

时间:2014-02-27 11:45:26

标签: .net c++-cli indexer

作为一个有点简单的人,我假设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;
}

0 个答案:

没有答案