我有一个调用 C++ .Net 类库的 C# .Net 控制台应用程序。但是,当执行以下应用程序时,列表变为空!!!
如果我删除旁边注释中指示的行,则代码有效。我不明白这是为什么。
如果我想按照下面的尝试为 C++ 类库中的列表重新分配内存,那么正确的方法是什么?
C#2005 控制台应用程序
class Caller
{
static void Main(string[] args)
{
Callee callee = new Callee();
List<String> s = new List<String>();
callee.DoSomething(s);
Console.WriteLine(s.Count); // Prints out 0
}
}
C++2005 类库
public ref class Callee
{
public:
void DoSomething(List<String^>^ list);
};
void Callee::DoSomething(List<String^>^ list)
{
list = gcnew List<String^>(); // Remove this line and it works
list->Add(gcnew String("Test String 1"));
list->Add(gcnew String("Test String 2"));
}