c# - 在 C# 中,如何从 C++/CLI 类中引用 typedef

标签 c# c++-cli

给定以下 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/

相关文章:

c++-cli - 是否可以将托管字节数组转换为没有 pin_ptr 的 native 结构,这样就不会给 GC 带来太多 bug?

visual-studio-2010 - 无法使用 VS 2010、.Net 3.5 和 64 位构建 C++/CLI 应用程序

c++ - Visual C++ 项目引用的新手帮助

c# - cookie.Expire 在 Chrome 中不起作用

c# - 有用的 Visual Studio C# Resharper 代码模板

JavaScript 链接函数/使用 IIFE 表达式扩展函数

c++ - 未处理的异常 : System. AccessViolationException:试图读取或写入保护

c# - 从文本文件中读取三角形坐标并将它们放入三角形类 C#

c# - 通过引用列名查找列索引?

c++ - 托管 C++ 包装器 - 如何以指针作为参数公开方法?