C++ cli 无法添加到c++;cli集合::通用::列表

C++ cli 无法添加到c++;cli集合::通用::列表,c++-cli,C++ Cli,我制作了一个简单的树类,如下所示: public ref class SimpleTreeNode { public: String^ Data; List<SimpleTreeNode^>^ Children = gcnew List<SimpleTreeNode^>; } auto^ nstn = gcnew SimpleTreeNode(); nstn->Children->Add(gcnew SimpleTreeNode()); 它

我制作了一个简单的树类,如下所示:

public ref class SimpleTreeNode {
public:
    String^ Data;
    List<SimpleTreeNode^>^ Children = gcnew List<SimpleTreeNode^>;
}
auto^ nstn = gcnew SimpleTreeNode();
nstn->Children->Add(gcnew SimpleTreeNode());
它说“Error:function”System::collections::generic::List::Add[with T=SimpleTreeNode^]“不能用给定的参数列表调用

参数类型为:(SimpleTreeNode^) 对象类型为:System::Collections::Generic::List^”


我错过了什么?这应该行得通,不?

对于您的情况,您应该在ref和value类型中使用关键字auto而不使用hat。像这样:

auto nstn = gcnew SimpleTreeNode();
auto cN = nstn->Children->Count;

nstn->Children->Add(gcnew SimpleTreeNode());
auto cN2 = nstn->Children->Count;

是的,我想应该行得通,但完全不行。我最后添加了一个方法“AddChild(SimpleTreeNode^n){Children->Add(n)}”,效果很好。