C#中的字符串和C++/CLI中的String ^ ...如何传递"null"?

 罗文彬2502852027 发布于 2023-02-07 09:10

我有一些C++库.我还得到了C++/CLI包装器,以便在C#代码中调用来自该库的方法.

假设我想在C#中使用一些调用,如下所示:

string date = MyWrapper.GetValue("SystemSettings", "BuildDate", null);

它将在C++/CLI上调用next函数:

static String^ GetValue(String^ section, String^ key, String^ defaultValue)

我的问题:我有下一个ArgumentNullException:

值不能为null.\ r \nParameter name:managedString.

所以...问题:我应该如何null正确传递?谢谢.

1 个回答
  • 传递null的代码很好.问题是你的包装器代码需要检测null并处理它.该代码可能是在假设第三个参数永远不为空的情况下编写的.如果您希望允许null,则必须显式处理该条件:

    static String^ GetValue(String^ section, String^ key, String^ defaultValue)
    {
        if (defaultValue == nullptr)
            // special case handling
        ....
    }
    

    2023-02-07 09:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有