给定以下 c++/cli 代码:
public ref class A
{
public:
typedef System::String B;
};
如何让下面的 C# 代码工作:
var b = new A.B();
编辑:如果有帮助,typedef
不是硬性要求。我的目标是最终得到一个定义一次并在两个世界中都可用的类型。
最佳答案
C# 没有类型定义。它确实有一种使用 using 声明制作的类型别名形式,但它们不支持您的用法(类型别名必须在使用它的每个文件中重复,它不随包含类型一起携带)。
一种语言很少支持使用另一种语言的功能,而第一种语言本身并不支持。而且,毫不奇怪,C# 不支持在 C++/CLI 中声明的 typedef,正如它不支持在 C# 中声明的 typedef。
如果您有需要此功能的代码,请使用 C++/CLI 编写,然后从 C# 调用。
关于c# - 在 C# 中,如何从 C++/CLI 类中引用 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24004971/