IEnumerable 返回类型 C# C++

qqq*_*qqq 1 c# ienumerable c++-cli return-type

我有一个带有如下方法签名的 C# 接口:

IEnumerable<string> Myfun();
Run Code Online (Sandbox Code Playgroud)

在 C++/CLR 中,接收返回字符串的数据类型是什么?

我努力了

IEnumerable<std::string> ^abc = myObject.Myfun();
Run Code Online (Sandbox Code Playgroud)

我收到此错误:错误 C3225:“T”的泛型类型参数不能是“std::string”,它必须是值类型或引用类型的句柄

cra*_*str 5

用这个:

IEnumerable<String^>^ abc = myObject.Myfun();
Run Code Online (Sandbox Code Playgroud)

您需要使用System::String^作为您的类型,而不是 C++ 的std::string

如果您需要传递std::string给其他 C++ 代码,则需要使用

std::string myCPPstring = marshal_as<std::string>(myDotNetString);
Run Code Online (Sandbox Code Playgroud)