从c ++调用c#:如何将nullptr传递给DateTime?

时间:2011-03-31 14:53:57

标签: c# c++-cli nullable

在c#程序集中,我得到了一个函数,它将可以为空的DateTime作为参数:

public void DoSomething(DateTime? timestamp);

现在我想从c ++ / cli中调用这个方法:

MyClass->DoSomething(nullptr);

这不会编译。相反,c ++编译器将打印错误消息,nullptr无法转换为System :: Nullable。

那么如何将nullptr从c ++传递给可以为空的DateTime?

2 个答案:

答案 0 :(得分:10)

MyClass->DoSomething(Nullable<DateTime>());

How to use Nullable types in c++/cli?

答案 1 :(得分:4)

Nullable值类型,C ++ / CLI不为它提供编译时魔术。你需要走明确路线:

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

当然,你也可以在这里使用临时的:

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