Ras*_*ber 5 c++-cli indexer explicit-interface
我想实现的是同时实现了一个C++/CLI类IList和IList<T>.
由于它们具有重叠的名称,我必须明确地实现其中一个,并且自然选择应该是IList.
索引器的隐式实现是:
using namespace System::Collections::Generic;
generic<class InnerT> public ref class MyList : public System::Collections::IList, IList<InnerT> {
// ...
property InnerT default[int]{
virtual InnerT get(int index);
virtual void set(int index, InnerT item);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在正在尝试声明IList的默认索引器.
我的猜测是这样的:
property Object^ System::Collections::IList::default[int]{
virtual Object^ System::Collections::IList::get(int index);
virtual void System::Collections::IList::set(int index, Object^ item);
}
Run Code Online (Sandbox Code Playgroud)
但那只是给了我
错误C2061:语法错误:标识符'default'
任何提示?
JaredPar的答案几乎奏效了.应该改变两件事:
即:
property Object^ IListItems[int]{
virtual Object^ get(int index) = System::Collections::IList::default::get;
virtual void set(int index, Object^ item) = System::Collections::IList::default::set;
}
Run Code Online (Sandbox Code Playgroud)