2011-03-31 90 views
5

在C#程序集,我有一個函數取爲空的日期時間爲參數:從C++調用c#:如何將nullptr傳遞給DateTime?

public void DoSomething(DateTime? timestamp); 

現在我想調用從C此方法++/CLI:

MyClass->DoSomething(nullptr); 

這不會編譯。相反,C++編譯器將打印一條錯誤消息nullptr不能轉換爲System :: Nullable。

那麼如何將nullptr從C++傳遞給可空的DateTime呢?

回答

4

Nullable值類型和C++/CLI不爲它提供編譯時魔法。你需要去顯式路由:

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

當然,你也可以使用一個臨時位置:

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