我正在尝试为List>实现索引属性;在C ++ / CLI中。我正在使用Visual Studio Express 2013.无论我做什么,简单的类语句都不会编译。索引属性的get函数的错误消息是default :: get:function不接受2个参数,然后default :: get:function不接受0个参数。 set函数的错误消息非常相似 - default :: set:function不带3个参数,然后default :: set:function不带0个参数。
我对编写类和属性非常新;它可能是我忽略的简单事物。我很难过。
代码如下:
#pragma once;
#include "stdafx.h"
using namespace System;
using namespace System::Collections::Generic;
public ref class Multilist
{
private:
List<List<int>^>^ mlist;
public:
Multilist()
{
mlist = gcnew List<List<int>^>;
}
property int default[int,int]
{
int get( int indx1, int indx2 )
{
if( indx1<0||indx2<0 )
throw ("Cannot have negative index values");
else
return mlist[indx1, indx2];
}
void set( int indx1, int indx2, int value )
{
mlist[indx1,indx2] = value;
}
}
};
答案 0 :(得分:0)
默认属性在最近的编译器版本中被破坏了。
使用非保留名称,并使用属性指定要使用的C#的默认值。