c# - 参数 DateTime ^A 的 C# 等效项是什么?

标签 c# c++-cli

我有一个由混合 C++/CLI 和 C# 代码组成的大型应用程序。在重构过程中,我想在 C# 中创建一个接口(interface),该接口(interface)将在 C++/CLI 中继承。没问题,我过去已经这样做过很多次了。但我对这个新接口(interface)的方法签名有疑问。将从它继承的 C++ 类具有如下所示的方法。

void MethodName(DateTime ^A)

如果 DateTime 是 C# 中的引用类型,我可以用此替换上面的签名。

void MethodName(DateTime A)

问题的出现是因为 DateTime 是一种值类型。但是,它是通过句柄访问的。句柄是一个 C++/CLI 概念,我不知道如何将其转换为 C#。

谁能告诉我 C# 中需要什么方法签名来解决这个问题?

最佳答案

不存在与 C++/CLI 中的 DateTime^ 直接等效的 C#。 C# 中不存在这种类型的参数。

ref DateTime 很接近,但在 C++/CLI 中将是 DateTime%,而不是 DateTime^

如果您可以修改包含 DateTime^ 的源代码,请将其更改为 DateTimeDateTime%。原作者可能不知道 DateTime 不需要 ^,因此他们可能将该参数用作常规按值参数,而不是引用。无论您以哪种方式更改它,都可以轻松地从 C# 调用它。

关于c# - 参数 DateTime ^A 的 C# 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16723791/

相关文章:

c# - 遍历 GridView 行并单独设置图像

c# - 将 html 帮助程序迁移到 ASP.NET Core

c# - 如何让 FileHelpers 在定义的列之后忽略列? (即忽略最后的列)

c++ - 我怎样才能 boost::bind 到传递并返回 std::string 的托管类的成员?

c# - 如果我有鼠标悬停,我如何获得 div 不透明效果

c# - 显示 HH :mm from decimal (H. m)

.NET 绘制全屏游戏

c++-cli - Xml 注释 cref 到未知符号

visual-studio - 无法加载 UI 卫星 dll 'FileTracker32UI.dll'

c# - 是否可以在 C# 中创建固定指针?