c# - IEnumerable 返回类型 C# C++

标签 c# c++-cli ienumerable return-type

我有 C# 接口(interface),方法签名如下:

IEnumerable<string> Myfun();

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

我试过了

IEnumerable<std::string> ^abc = myObject.Myfun();

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

最佳答案

使用这个:

IEnumerable<String^>^ abc = myObject.Myfun();

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

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

std::string myCPPstring = marshal_as<std::string>(myDotNetString);

关于c# - IEnumerable 返回类型 C# C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26494511/

相关文章:

c# - Tesseract Init() 方法 C3

c# - 如何使用 UIAlertController 显示来自 UIViewController 的警报消息

c++ - DataGridView 类 - 错误()

c# - 为什么我们需要 IEnumerator 和 IEnumerable?

c# - 将动态转换为对象

c# - 接口(interface)中的静态

c# - C++/CLI 无法识别命名空间

dll - 释放/删除char *会导致无效的堆指针声明失败

c# - 不懂 IEnumerable<T>

c# - 在可序列化字典上使用 foreach 语句