从C++调用C#: 如何将空指针传递给DateTime?

7
在一个c#程序集中,我有一个函数,它以可空的DateTime作为参数:
public void DoSomething(DateTime? timestamp);

现在我想从c++/cli调用这个方法:
MyClass->DoSomething(nullptr);

这段代码无法编译。相反,C++编译器会输出错误信息:nullptr无法转换为System::Nullable。

那么我该如何将nullptr从C++传递到可空的DateTime?

2个回答

12

咦,我显然想得太复杂了。谢谢! - Sam

4

Nullable是一个值类型,而C++/CLI没有为其提供编译时的魔法。你需要走明确的路线:

System::Nullable<System::DateTime> dtnull;
MyClass->DoSomething(dtnull);

当然,您也可以在这里使用临时变量:
MyClass->DoSomething(System::Nullable<System::DateTime>());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接