Ich bin eine native C++ Klasse Verpackung, die die folgenden Methoden hat:Konvertieren von std :: vector <> :: Iterator auf .NET-Schnittstelle in C++/CLI
class Native
{
public:
class Local
{
std::string m_Str;
int m_Int;
};
typedef std::vector<Local> LocalVec;
typedef LocalVec::iterator LocalIter;
LocalIter BeginLocals();
LocalIter EndLocals();
private:
LocalVec m_Locals;
};
1) Was ist das“.NET Weg "die gleiche Art von Schnittstelle zu repräsentieren? Eine einzelne Methode, die ein Array zurückgibt <>? Hat das Array <> generische Iteratoren, so dass ich BeginLocals() und EndLocals() implementieren konnte?
2) Sollte Local als Wert Struktur in der .NET-Wrapper deklariert werden?
ich wirklich möchte die eingewickelt Klasse mit einem .NET-Geschmack repräsentieren, aber ich bin sehr neu in der verwalteten Welt - und diese Art von Informationen ist frustrierend Google für ...
Das ist ein guter Ansatz, aber Sie werden wahrscheinlich auch sicherstellen wollen, dass mindestens eine Count-Eigenschaft verfügbar gemacht wird :). Eine andere Anmerkung, ohne die Liste verfügbar zu machen oder IEnumerable < T > zu implementieren, wird die Klasse von den LINQ-Erweiterungen in .net 3.5 nicht verwandt werden können –