在c#程序集中,我得到了一个函数,它将可以为空的DateTime作为参数:
public void DoSomething(DateTime? timestamp);
现在我想从c ++ / cli中调用这个方法:
MyClass->DoSomething(nullptr);
这不会编译。相反,c ++编译器将打印错误消息,nullptr无法转换为System :: Nullable。
那么如何将nullptr从c ++传递给可以为空的DateTime?
答案 0 :(得分:10)
MyClass->DoSomething(Nullable<DateTime>());
答案 1 :(得分:4)
Nullable
是值类型,C ++ / CLI不为它提供编译时魔术。你需要走明确路线:
System::Nullable<System::DateTime> dtnull;
MyClass->DoSomething(dtnull);
当然,你也可以在这里使用临时的:
MyClass->DoSomething(System::Nullable<System::DateTime>());