clr - C# 的 C++ 表示? CLR 上的修饰符

标签 clr

我正在使类库在 CLR 上运行。

我想知道应该如何编写返回可为空类型的函数。

如何制作与下面的 C# 类完全相同的 C++ 引用类?

我已经在 MSDN 上搜索过,但找不到了。

class ResultClass
{
}

class SomeClass
{
    public ResultClass? getResult();
}

感谢您的阅读。

最佳答案

C++/CLI 不支持带有 ? 的语法糖。问号,您必须显式使用 Nullable<> 结构。在其他方面,它的用法与 C# 相同,您永远不会在引用类型上使用 Nullable<>。对于像 ResultClass 这样的引用类型,只需返回 nullptr 即可。显示语法的片段:

public ref class SomeClass {
public:
    ResultClass^ getResult() {
       return nullptr;    // TODO: call native code
    }
    Nullable<int> nullableExample() {
       Nullable<int> retval;
       if (someCondition) retval = Nullable<int>(42);
       return retval;
    }
};

关于clr - C# 的 C++ 表示? CLR 上的修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19617486/

相关文章:

.net - CLR (.NET) 是否允许两个应用程序在同一执行环境中执行?

c# - 线程池是否在应用程序域之间共享?

c# - 从进程外 C++ COM 获取字节数组到 C#

exception - CLR 与 OCaml 异常开销

c# - 什么是 HostProtectionAttribute,我们为什么要使用它?

c# - 通过反射从 C# 访问 C++ 非成员函数

c# - 引用类型和引用之间的区别

c# - C# 未初始化的变量危险吗?

c# - IsDisposed 是如何工作的?

c# - 将 int[] 转换为 object[]